Зачем приводить объект к интерфейсному типу который реализован неявно, если в нем и так и так будут доступны методы интерфейса?

220
31 августа 2021, 17:30

Например:

List <int> list = new List<int>();
((IEnumerable<int>)list).GetEnumerator();

В первой строчке у объекта list будут доступны все поля и методы класса List, в том числе у него будут доступен метод интерфейса IEnumerable Во второй строчке после приведения к типу IEnumerable у объекта полностью скрываются все поля и методы класса кроме метода , который реализуется от интерфейса IEnumerable. В чем тогда смысл приводить к этому типу, если метод интерфейса доступен в первом и втором случае? Скрывается только вся реализация класса, правда зачем ее скрывать мне тоже не очень понятно, подскажите кто-то, если поняли что я написал. Просто увидел в одном проекте такие строчки кода и интересно зачем это нужно.

READ ALSO
Связь many-to-many для трех моделей

Связь many-to-many для трех моделей

Есть три модели - школа, учителя и ученики

226
Конвертация HTML в PDF средствами C#

Конвертация HTML в PDF средствами C#

Имеется HTML-страница, состоящая из 3х таблиц(пустых), которые заполняются с помощью JavaScript с определенной периодичностью(данные таблиц обновляются)Страница...

141
Проблема создания модели ADO.NET EDM из базы данных MySql

Проблема создания модели ADO.NET EDM из базы данных MySql

Необходима работать с базой данных MySql с помощью Entity FrameworkВерсия платформы:

124
Django перевод проект на MySQL

Django перевод проект на MySQL

Нужно перевести проект с SQLite на MySQLНастройки в settings

260