web-dev-qa-db-ja.com

C#の「is」キーワードに相当するVB.NETとは何ですか?

特定のオブジェクトがインターフェイスを実装しているかどうかを確認する必要があります。 C#では簡単に言うと:

_if (x is IFoo) { }
_

TryCast()を使用してから、Nothingをチェックするのが最善の方法ですか?

44
Tahbaza

次を試してください

if TypeOf x Is IFoo Then 
  ...
65
JaredPar

このような:

If TypeOf x Is IFoo Then
7
SLaks

直訳は次のとおりです。

If TypeOf x Is IFoo Then
    ...
End If

しかし(2番目の質問に答えるために)元のコードが次のように記述された方がよい場合

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

優れている。

2
Mark Hurd