Ковариация - это (примерно) способность зеркального наследования "простых" типов в сложных типах, которые их используют.
Например. Мы всегда можем рассматривать экземпляр Cat
как экземпляр Animal
. A ComplexType<Cat>
можно рассматривать как a ComplexType<Animal>
, если ComplexType является ковариантным.
Мне интересно: что такое "типы" ковариации и как они относятся к С# (поддерживаются ли они?)
Примеры кода были бы полезны.
Например, один тип - это ковариация возвращаемого типа, поддерживаемая Java, но не С#.
Я надеюсь, что кто-то с функциональными программирующими отбивками тоже может перезвонить!