gpt4 book ai didi

c# - 如何使用左侧带有 Type 的 IS 运算符?

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

我正在编写一个方法,它使用反射来列出类的静态属性,但我只对那些属于特定类型的属性感兴趣(在我的例子中,该属性必须是从 DataTable 派生的类型).我想要的是类似于下面的 if() 语句(目前总是返回 true):

PropertyInfo[] properties = ( typeof(MyType) ).GetProperties( BindingFlags.Public
| BindingFlags.Static );

foreach( PropertyInfo propertyInfo in properties ) {
if( !( propertyInfo.PropertyType is DataTable ) )
continue;

//business code here
}

谢谢,我很难过。

最佳答案

您需要使用 Type.IsAssignableFrom而不是"is"运算符。

这将是:

if( !( DataTable.IsAssignableFrom(propertyInfo.PropertyType) )

DataTable.IsAssignableFrom(propertyInfo.PropertyType) 如果 PropertyType 是 DataTable 或 DataTable 的子类,则为真。

关于c# - 如何使用左侧带有 Type 的 IS 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088360/

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