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

时间:2010-07-02 16:29:17

标签: c# vb.net c#-to-vb.net

我需要检查给定对象是否实现了接口。在C#中,我只想说:

if (x is IFoo) { }

使用TryCast(),然后检查Nothing最佳方式吗?

3 个答案:

答案 0 :(得分:61)

尝试以下

if TypeOf x Is IFoo Then 
  ...

答案 1 :(得分:6)

像这样:

If TypeOf x Is IFoo Then

答案 2 :(得分:1)

直接翻译是:

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

更好。