gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:37:13 26 4
gpt4 key购买 nike

我遇到了一个关于类型比较的有趣问题。我正在尝试将隐含类型与显式类型进行比较,以测试某物是否属于任何类型的集合

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>} .

我怎样才能匹配那种类型?

谢谢

最佳答案

使用Type.IsAssignableFrom ,此处使用:Getting all types that implement an interface

例如:

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

关于c# - 隐式类型与显式类型的比较 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com