web-dev-qa-db-ja.com

VB.NET null合体演算子?

可能性のある重複:
VB.NETの合体演算子と条件演算子
C#の??演算子に相当するVB.NETはありますか?

C#null合体演算子に相当する組み込みのVB.NETはありますか?

62
RiddlerDev

はい、あります、VB 9以降(Visual Studio 2008に含まれています)を使用している限り。

If operator のバージョンをオーバーロードして、2つの引数のみを受け入れることができます。

Dim myVar? As Integer = Nothing
Console.WriteLine(If(myVar, 7))

詳細については、VB.NETチームによるブログ投稿で こちら をご覧ください。

(はい、これは関数のように見えますが、operatorです。「適切な」null合体と同じILにコンパイルされます。 C#の演算子。)

Dim b As Boolean?
Console.WriteLine("{0}.", If(b, "this is expected when b is nothing"))
'output: this is expected when b is nothing.

b = False
Console.WriteLine("{0}.", If(b, "this is unexpected when b is false"))
'output: False.

b = True
Console.WriteLine("{0}.", If(b, "this is unexpected when b is true"))
'output: True.
92
Cody Gray

これによれば question 答えは If()

7
SeeSharp