什么是C#“is”关键字的VB.NET等价物?

我需要检查一个给定的对象是否实现了一个接口。 在C#中,我会简单地说:

if (x is IFoo) { } 

是使用TryCast() ,然后检查Nothing最好的办法?

尝试以下

 if TypeOf x Is IFoo Then ... 

喜欢这个:

 If TypeOf x Is IFoo Then 

使用此在线Web解决scheme将C#转换为VB.NET,以及其他一些代码转换。

直接翻译是:

 If TypeOf x Is IFoo Then ... End If 

但是(回答你的第二个问题)如果原始代码写得更好

 var y = x as IFoo; if (y != null) { ... something referencing y rather than (IFoo)x ... } 

好的,

 Dim y = TryCast(x, IFoo) If y IsNot Nothing Then ... something referencing y rather than CType or DirectCast (x, IFoo) End If 

更好。