Size: a a a

2021 April 24

И

Испанский Коммунист... in pro.net
А свойству/переменной ( в моём случае свойству ) IEnumerable<T> можно присваивать массив объектов?
источник

И

Испанский Коммунист... in pro.net
источник

Dv

Dr. Friedrich von Ne... in pro.net
Да, можно присваивать.
источник

И

Испанский Коммунист... in pro.net
А тип, как это работает?
источник

Dv

Dr. Friedrich von Ne... in pro.net
Наследование!
источник

Dv

Dr. Friedrich von Ne... in pro.net
Ну, в данном случае реализация интерфейса.
источник

И

Испанский Коммунист... in pro.net
Не, я имею в виду
источник

И

Испанский Коммунист... in pro.net
Само свойство
источник

И

Испанский Коммунист... in pro.net
Типо оно работает так же само, как и массив?
источник

Dv

Dr. Friedrich von Ne... in pro.net
Ты создал объект типа массив, и положил в свойство на этапе инициализации объекта.
источник

Dv

Dr. Friedrich von Ne... in pro.net
Из этого поля будет отдаваться оригинальный объект всегда.
источник

Dv

Dr. Friedrich von Ne... in pro.net
Его могут скастовать обратно в массив и поменять, например.
источник

И

Испанский Коммунист... in pro.net
Понял, а присваивать можно потому что этот интерфейс наследует от какого-то класса, который используется массивами?
источник

ЕБ

Евгений Бурмистров... in pro.net
наоборот, класс наследует интерфейс, но да
источник

AK

Andrei Kurosh in pro.net
Класс не наследует, а реализует интерфейс
источник

Dv

Dr. Friedrich von Ne... in pro.net
В моём мире и то, и другое описывается двоеточием, и большой разницы между наследованием и реализацией я не вижу :)
источник

AK

Andrei Kurosh in pro.net
Однако реализация интерфейса может наследоваться от другого класса
источник

ЕБ

Евгений Бурмистров... in pro.net
Array -> IList -> ICollection -> IEnumerable, если хочется полную цепочку посмотреть
источник

ЕБ

Евгений Бурмистров... in pro.net
а может от интерфейса!
источник

AK

Andrei Kurosh in pro.net
Вот кстати в TS внезапно сделано более грамотно: там class Foo extends BaseFoo implements IFoo
источник