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



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

var obField = value.GetType().InvokeMember(_stCollectionField, 
                              System.Reflection.BindingFlags.GetProperty, 
                              null, value, null);
if (obField.GetType() != typeof(IEnumerable<object>))
{
    return true;
}

在测试过程中,我可以确保obField将变成一个对象集合。然而,我发现它总是在check和return true内部运行,相反,我希望它跳过它(因为这两种类型是相等的。(

经过一点调试,我得到了obField的类型为object {System.Collections.Generic.List<System.DateTime>}

如何匹配该类型

感谢

使用Type.IsAssignableFrom,如下所示:获取实现接口的所有类型

例如:

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

相关内容

  • 没有找到相关文章

最新更新