如何检查泛型类型实例是否从另一个实例类型和参数类型“继承”

时间:2011-06-06 05:59:35

标签: c# generics reflection types

我想查看以下内容:

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

我的意思是检查'wrapper'类和参数类是否都是从给定的类继承的。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

你的意思并不清楚。您可以非常轻松地检查它是否可分配

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

在这种情况下,我们依赖于IEnumerable<T>的通用协方差。并非所有接口都支持它,而且类肯定不支持。

如果你能给我们更多关于更大图景的指示 - 你想要达到的目标 - 那真的会有所帮助。