Как проверить, наследуется ли экземпляр универсального типа от другого, как универсального типа, так и типа аргумента - PullRequest
1 голос
/ 06 июня 2011

Я хотел бы проверить что-то вроде ниже:

  List<string> lst=new List<string>();
if(lst ?? is "Inherited" from "IEnumerable<object>" ??)

Я имею в виду проверку того, наследуются ли класс «обертка» и класс аргумента от данных классов.Предлагаю, будет оценен!

1 Ответ

1 голос
/ 06 июня 2011

Не совсем понятно, что вы имеете в виду. Вы можете легко проверить, можно ли присваивать типу:

List<string> list = new List<string>();
if (list is IEnumerable<object>) // True for .NET 4, false for earlier versions
{
    ...
}

В этом случае мы полагаемся на общую ковариацию IEnumerable<T>. Не все интерфейсы поддерживают это, и классы, конечно, не поддерживают.

Если бы вы могли дать нам больше информации об общей картине - чего вы пытаетесь достичь - это действительно помогло бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...