Java 的 instanceof 和 isInstance() 的 VB 等效物是什么?

本着 c# 问题的精神。.

比较 VB.NET 类类型的等效语句是什么?


答案 1

你在寻找类似的东西吗?这仅适用于引用类型,不适用于 int/等。TypeOf

If TypeOf "value" Is String Then
     Console.WriteLine("'tis a string, m'lord!")

还是要比较两个不同的变量实例?也适用于引用类型:

Dim one As Object = "not an object"
Dim two As Object = "also not an object, exactly"
Dim three as Object = 3D

If one.GetType.Equals( two.GetType ) Then WL("They are the same, man")
If one.GetType Is two.GetType then WL("Also the same")
If one.GetType IsNot three.GetType Then WL("but these aren't")

如果您不使用两个对象,您也可以使用类似这样的方法:gettype()

If three.GetType Is gettype(integer) then WL("is int")

如果你想看看某物是否是另一种类型的子类(并且在.net 3.5中):

If three.GetType.IsSubclassOf(gettype(Object)) then WL("it is")

但是,如果您想在早期版本中执行此操作,则必须将其翻转(看起来很奇怪)并使用:

If gettype(Object).IsAssignableFrom(three.GetType) Then WL("it is")

所有这些都在SketCompiler中编译,所以如果你没有它,就去DL。


答案 2
TypeOf obj Is MyClass