c#检查对象是否是只有在运行时才知道的类型



为什么不工作?

if(!(obj is (DataGridView1.SortedColumn.ValueType)))

我得到一个错误,认为需要一个类型。ValueType不返回类型吗?

ValueType不是一个实际的类,对吗?这是一个返回Type的属性。所以要在运行时弄清楚这个,你需要说:

if(!(DataGridView1.SortedColumn.ValueType.IsAssignableFrom(obj.GetType())))

将代码改为

if(obj.GetType() != DataGridView1.SortedColumn.ValueType)

Edit更新修复错字的代码

不,ValueType属性是Type类的一个实例。它本身不是一种类型。

试试这个:

if (!(obj.GetType() == DataGridView1.SortedColumn.ValueType))

然而,这并不能说明obj是否是一个派生类型,所以如果你需要,你必须做得更漂亮一些。

相关内容

  • 没有找到相关文章

最新更新