В настоящее время я читаю о ковариации и контравариантности в C #.
Все примеры содержат сведения об объектах, которые можно преобразовать, и отличаются точностью от реализации интерфейса, например
Где Circle: IShape
Ковариация: SomeType
Контравариантность: SomeType
Если TypeA
и Каждый тип B
имеет неявный преобразователь
, записанный для преобразования в другой тип, но не реализуют какой-либо общий интерфейс , правильно ли говорить о ковариации / контравариантности при работе с преобразование дженериков этих типов? Или это другое понятие?