Size: a a a

var chat = new Chat();

2021 August 07

rr

razumovsky r in var chat = new Chat();
контра — противоположное
источник

rr

razumovsky r in var chat = new Chat();
развернул стрелку наследования
источник

E

Etki in var chat = new Chat();
А где противоречие-то?
источник

rr

razumovsky r in var chat = new Chat();
ковариантность, по стрелке
источник

SC

Serega Carbon in var chat = new Chat();
IInterface<Animal> animal = new Implementation<Dog>();  - это ковар. , тоесть out
источник

SC

Serega Carbon in var chat = new Chat();
поняли?
источник

rr

razumovsky r in var chat = new Chat();
в том что, очевидно, Т не всегда Базовый
источник

rr

razumovsky r in var chat = new Chat();
вот и отличие
источник

rr

razumovsky r in var chat = new Chat();
а в случае с контравариантность, Т не всегда выведенный
источник

E

Etki in var chat = new Chat();
Не понимаю что это значит
источник

rr

razumovsky r in var chat = new Chat();
тут уже идет особенность что ковариатность гет онли
источник

rr

razumovsky r in var chat = new Chat();
а контра сет онли
источник

SC

Serega Carbon in var chat = new Chat();
IInterface<Dog> dog = new Implementation<Animal>()
 —> IInterface<in T>
IInterface<Animal> animal = new Implementation<Dog>()
—> IInterface<out T> - запомнили?
источник

E

Etki in var chat = new Chat();
Если тебе в моем примере не нравится I<Base>, то замени на I<T>
источник

rr

razumovsky r in var chat = new Chat();
потому что не любой Т выведенный от ТБейс
источник

E

Etki in var chat = new Chat();
Но разницы вообще никакой, даже если считать что один неопределенный параметр, а второй конкретный
источник

rr

razumovsky r in var chat = new Chat();
разница в том как ты трактуешь операторы
источник

SC

Serega Carbon in var chat = new Chat();
вот это легче запомнить
источник

E

Etki in var chat = new Chat();
Какие операторы?
источник

rr

razumovsky r in var chat = new Chat();
ковариантности, контравариантности
источник