我需要检查给定对象是否实现了接口。在C#中,我只想说:
if (x is IFoo) { }
使用TryCast()
,然后检查Nothing
最佳方式吗?
答案 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
更好。