与显式类型的隐式类型比较 - C#

时间:2011-07-06 11:47:08

标签: c# type-conversion implicit-typing

我对类型比较有一个有趣的问题。我试图将隐含类型与显式类型进行比较,以测试某些东西是否是任何类型的集合

var obField = value.GetType().InvokeMember(_stCollectionField, 
                              System.Reflection.BindingFlags.GetProperty, 
                              null, value, null);

if (obField.GetType() != typeof(IEnumerable<object>))
{
    return true;
}

在我测试期间,我可以确保obField将成为对象的集合。但是,我发现它总是在支票和return true内运行,而我希望它跳过那个(因为两种类型是相同的。)

稍微调试就会将obField的类型视为object {System.Collections.Generic.List<System.DateTime>}

如何匹配该类型?

由于

1 个答案:

答案 0 :(得分:3)

使用此处使用的Type.IsAssignableFromGetting all types that implement an interface

例如:

if (typeof(IEnumerable<object>).IsAssignableFrom(obField.GetType())) { ... }