Сообщение Re[4]: [ООП] Наследование интерфейсов друг от друга от 31.01.2024 11:51
Изменено 31.01.2024 12:45 Serginio1
Re[4]: [ООП] Наследование интерфейсов друг от друга
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>> IEnumerable позволяет избавиться от рефлексии когда нужно привести тип к IEnumerable в каком то общем методе вместо
S>>
S>Зачем вам такой код? Что он делает?
Это пример. Мне нужно найти некий обобщенный интерфейс не привязанный к конкретному типу и вызвать его метод.
Например если бу не было IEnumerable мне бы пришлось вместо
Пришлось бы сначала через цикл и GetGenericTypeDefinition() получить является он реализацией IEnumerable<>
а затем через рефлексию вызвать "GetEnumerator"
Например .Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
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 свой велосипед
Re[4]: [ООП] Наследование интерфейсов друг от друга
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>> IEnumerable позволяет избавиться от рефлексии когда нужно привести тип к IEnumerable в каком то общем методе вместо
S>>
S>Зачем вам такой код? Что он делает?
Это пример. Мне нужно найти некий обобщенный интерфейс не привязанный к конкретному типу и вызвать его метод.
Например если бу не было IEnumerable мне бы пришлось вместо
Пришлось бы сначала через цикл и GetGenericTypeDefinition() получить является он реализацией IEnumerable<>
а затем через рефлексию вызвать "GetEnumerator"
Например .Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
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 свой велосипед