Perl(および他の言語)では、条件付き3項演算子は次のように表現できます。
my $foo = $bar == $buz ? $cat : $dog;
VB.NETに同様の演算子がありますか?
バージョンによって異なります。 VB.NET 2008のIf
演算子は、3項演算子です(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)
iifはVB 6でも、常にVBで利用可能でした。
Dim foo as String = iif(bar = buz, cat, dog)
それ自体は真の演算子ではなく、Microsoft.VisualBasic名前空間の関数です。
If()が最も近い等価ですが注意 "Option Strict off"を設定している場合は暗黙的な変換が行われます
たとえば、注意しないと、次のようなことをしたくなるかもしれません。
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
"foo"の値を0にします。
私は思います '?' C#の等価演算子ではなくコンパイルが失敗する