处理GetType()时等于vs.

时间:2015-01-13 17:24:49

标签: .net vb.net

这是方案,

我有一个Silverlight C1 Datacolumn,我想查看它的类型。

我知道有两种方法可以做到:

 SilverLightColumn.DataType.Equals(GetType(Decimal)) 

 SilverLightColumn.DataType Is GetType(String)

.DataType是System.Type。

一种方式比另一种更好,还是相同?

或者,我完全错了,有更好的方法来检查类型吗?

2 个答案:

答案 0 :(得分:2)

它们并不等同。如果你有以下

Class Foo
   '...
End Class

Class Bar Inherits Foo
   '...
End Class

DataType的类型是Bar然后

的类型
SilverLightColumn.DataType Is GetType(Foo)

将返回true,但是

SilverLightColumn.DataType.Equals(GetType(Foo)) 

将返回false。对于该类型或从其继承的任何类型,Is将返回true,Equals必须是完全相同的类型。

答案 1 :(得分:0)

SilverLightColumn.DataType Is GetType(String)

Is将允许从中继承的任何类型

SilverLightColumn.DataType = GetType(String)

=仅允许完全匹配

您也可以使用TypeOf运算符代替GetType方法