2011-06-06 149 views
1

我想检查类似如下:如何检查是否泛型类型实例从另一个“继承”,既泛型类型和参数类型

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

我的意思是检查是否给出了'包装类“和参数类是从给定的类继承的。

任何建议将不胜感激!

+0

在我的情况,我想检查是否类型列表实现IEnumerable而同时类型字符串是从对象继承,作为类型的实例列表是等待检查的目标和类型IEnumerable 是给定的条件。 – NicolasZ 2011-06-06 07:30:49

回答

1

这是不是很清楚你的意思。您可以检查它是否是分配的类型很容易:

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

在这种情况下,我们依靠的IEnumerable<T>通用协方差。并不是所有的接口都支持这一点,而类肯定不支持。

如果你可以给我们更多的指示 - 你试图达到的目标 - 这真的会有帮助。