Определение: Ковариантность и Контравариантность

  • Ковариантность: позволяет использовать более конкретный тип, чем заданный изначально.

  • Контравариантность: позволяет использовать более универсальный тип, чем заданный изначально.

  • Инвариантность: позволяет использовать только заданный тип.

 

Generic Модификатор IN

Generic Модификатор Out

https://blogs.msdn.microsoft.com/charlie/2008/10/28/linq-farm-covariance-and-contravariance-in-c-4-0/

https://msdn.microsoft.com/en-us/library/sx2bwtw7.aspx

https://msdn.microsoft.com/en-us/library/d5x73970.aspx

https://msdn.microsoft.com/en-us/library/bb384067.aspx