2011-06-06 301 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>通用協方差。並不是所有的接口都支持這一點,而類肯定不支持。

如果你可以給我們更多的指示 - 你試圖達到的目標 - 這真的會有幫助。