Mr.Tです、こんにちは。
いや、これはすごい
やってくれたよ、こんなのをサポートしたのね。
ネタ元:http://blogs.msdn.com/vbteam/archive/2008/03/11/if-operator-a-new-and-improved-iif-sophia-salim.aspx
(注意:以下は翻訳ではないですよ)
今までC#、C++などで使えていた3項演算子である(?)は、ショートサーキット評価による演算で、
かなり便利だなぁと思われていたものです。
それが、VBでも利用できるようになりました。すばらしい。
ショートサーキット評価ってのは、簡単にいえば、
True Or (変数A = 変数B)
という式があった場合、変数A=変数Bを評価しなくても、式の結果はTrueになりますから、
わざわざ 変数A=変数Bを内部で評価しませんよ、というものです。
逆にいえば、ショートサーキットであれば、Trueパートだろうが、Flaseパートだろうが、「内部で評価されてしまう」
わけですね。
関数IIFだと、ショートサーキットではありません。
使い方は、こうです。
IF(判定式,Trueパート,Falseパート)
もしくは、
IF(Trueパート、Falseパート)
いや、すごいね、3項演算子から、判定式まで省略できるように進化してしまったよ!
#っていうか、ぶっちゃけそこまでいらねー
3項演算については、もうだいたいわかっている機能なんですが、2項演算になってしまったというか、
IF(Trueパート、Falseパート)
なによ、これ?
MSDNで検索。
http://msdn2.microsoft.com/en-gb/library/bb513985(ja-jp).aspx
Boolean 引数を省略するときは、1 番目の引数に参照型または null 許容型を指定する必要があります。1 番目の引数が Nothing と評価されると、2 番目の引数の値が返されます。それ以外のすべての場合は、1 番目の引数の値が返されます。次の例は、この評価がどのように動作するのかを示します。
つまり、判定する式と値が一体化してしまったような形ですね。判定対象はNothingになります。
注意するのが、1番目の引数が参照型もしくは、Null許容型でなくちゃならないってことでしょうか。
#使い道がわからん
ネタ元のコメントには、?が使いたいならC#を使えば?とか、かいてあったり、これイイヨ!とか、賛否両論
な感じですが、私は素直に喜べる機能じゃないかと思ってます。