Re[4]: [ООП] Наследование интерфейсов друг от друга
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.01.24 11:51
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:

S>> IEnumerable позволяет избавиться от рефлексии когда нужно привести тип к IEnumerable в каком то общем методе вместо

S>>
S>> while (objType!=null && objType != typeof(object))
S>> {
S>>     if (objType.IsGenericType && 
S>>         objType.GetGenericTypeDefinition() == typeof(IEnumerable<>))
S>>         return true;
S>>     objType = objType.BaseType;
S>> }
S>>


S>Зачем вам такой код? Что он делает?


Это пример. Мне нужно найти некий обобщенный интерфейс не привязанный к конкретному типу и вызвать его метод.
Например если бу не было IEnumerable мне бы пришлось вместо


 if (obj is IEnumerable ie)
  ie.GetEnumerator();



Пришлось бы сначала через цикл и GetGenericTypeDefinition() получить является он реализацией IEnumerable<>
а затем через рефлексию вызвать "GetEnumerator"

Например .Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
и солнце б утром не вставало, когда бы не было меня
Отредактировано 31.01.2024 12:45 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.