在VIsual Basic中,我如何比较两个对象的类型?

时间:2017-11-24 16:36:32

标签: vb.net object types

我想知道两个对象是否具有相同的类型。我试过了

if TypeOf X = TypeOf Y

if TypeOf X is TypeOf Y

但这些都不是有效的VB

有没有办法在一行中执行此操作,还是只需为每种可能的类型创建代码?

if (TypeOf X is Type1 AndAlso TypeOf Y is Type1)
OrElse (TypeOf X is Type2 AndAlso TypeOf Y is Type2)
...

1 个答案:

答案 0 :(得分:1)

正如汉斯在评论中提到的,如果你需要检查两个对象是否完全相同,你可以这样做:

If x.GetType() = y.GetType() Then

但是,这可能不是你所需要的。如果你需要知道一个是否可以转换为另一个的类型(x是派生类的实例,y是其基类的实例),你可以这样做:

If x.GetType().IsAssignableFrom(y.GetType()) Then