479

Perl (および他の言語) では、条件付き三項演算子は次のように表現できます。

my $foo = $bar == $buz ? $cat : $dog;

VB.NET に同様の演算子はありますか?

4

5 に答える 5

643

バージョンによって異なります。VB.NET 2008のIf演算子は、三項演算子 (および null 合体演算子) です。これは導入されたばかりで、2008 年より前は利用できませんでした。ここにいくつかの詳細情報があります: Visual Basic If アナウンス

例:

Dim foo as String = If(bar = buz, cat, dog)

[編集]

2008 年以前は、上記IIfの演算子とほぼ同じように機能するでした。If

例:

Dim foo as String = IIf(bar = buz, cat, dog)
于 2009-02-23T03:46:40.453 に答える
81

iif は、VB6 でも常に VB で使用できます。

Dim foo as String = iif(bar = buz, cat, dog)

それ自体は真の演算子ではなく、Microsoft.VisualBasic 名前空間の関数です。

于 2009-02-23T04:25:19.987 に答える
24

If()が最も近いものですが、 を設定した場合は暗黙の変換が行われることに注意してください。Option Strict off

たとえば、注意しないと、次のようなことを試したくなるかもしれません。

Dim foo As Integer? = If(someTrueExpression, Nothing, 2)

fooの値を与えます0!

?C# に相当する演算子は代わりにコンパイルに失敗すると思います。

于 2012-08-16T15:50:32.657 に答える