【VB】C#との差異 (条件分岐 - IF文 / 三項演算子 編)

■ IF文

構文

If 【条件1】 Then
  「条件1が成立した場合」
ElseIf 【条件2】 Then
  「条件2が成立した場合」
Else
  「条件1、2が成立しなかった場合」
End If

条件判断

 * 「=」 : 内容が等しい (C#でいうと「==」)
 * 「<>」 : 内容が等しくない (C#でいうと「!=」)

# SQL文みたい
http://d.hatena.ne.jp/warusanta/20080305/1204686054

論理演算子

* 論理演算子には、AndAlso、OrElse、And、Or、Notを使用する
 * AndAlso:C#の&&演算子と同じ(偽と判断した時点で、以降は評価しない)
 * OrElse:C#の||演算子と同じ(真と判断した時点で、以降は評価しない)

 * And:偽と判断した時点でも、全ては評価する
 * Or:真と判断した時点でも、全ては評価する

三項演算子(条件演算子、?演算子

 * If文を使う(詳細は以下の通り)

構文

【戻り値】 = If(【条件文】, "【真の時の戻り値】", "【偽の時の戻り値】")

注意:IIF文について

IIF文ってのもあるが...
http://d.hatena.ne.jp/smallgeek/20110111/p1
より抜粋

If 関数では、TruePart(真の場合に返されるオブジェクト) と、
FalsePart(偽の場合に返されるオブジェクト)の両方を、結果に関わらず評価します。
そのため、次のコードでは例外が発生してしまいます。

// edamameshiba が Nothing でも Name が呼ばれてしまう
Dim str As String = IIf(edamameshiba IsNot Nothing, edamameshiba.Name, "Nothing").ToString()

参考文献

http://blogs.wankuma.com/mrt/archive/2008/03/13/127492.aspx
http://genz0.blogspot.com/2008/12/netvbnet.html
IIF文について
http://d.hatena.ne.jp/smallgeek/20110111/p1

関連記事

VBC#との差異 (条件分岐 - Select-case文(C#のSwitch-case) 編)

http://blogs.yahoo.co.jp/dk521123/35742057.html