共用方式為


If 運算子 (Visual Basic)

使用最少運算評估,有條件地傳回兩個值的其中一個。 If 運算子可以使用三個引數或兩個引數來進行呼叫。

If( [argument1,] argument2, argument3 )

用三個引數呼叫 If 運算子

當使用三個引數呼叫 If 時,第一個引數必須評估為可轉換成 Boolean 的值。 該 Boolean 值會判斷要評估並傳回其餘兩個值中的哪一個。 使用三個引數呼叫 If 運算子時,適用下列清單。

組件

詞彙

定義

argument1

必要項。 Boolean. 判斷要評估及傳回哪一個剩下的引數。

argument2

必要項。 Object. 如果 argument1 評估為 True 則加以評估及傳回。

argument3

必要項。 Object. 評估並傳回 if argument1評估為False或argument1是 NullableBoolean變數,其值為執行任何動作

使用三個引數呼叫的 If 運算子,其作業方式類似 IIf 函式,不同的是前者使用最少運算評估。 IIf 函式一律會評估全部三個引數,而具有三個引數的 If 運算子則只會評估其中兩個。 評估第一個 If 引數後,結果會轉換為 Boolean 值:True 或 False。 如果值為 True,則評估argument2 並傳回其值,但是不會評估 argument3。 如果 Boolean 運算式的值為 False,則會評估 argument3 並傳回其值,但是不會評估 argument2。 下列範例說明使用三個引數時 If 的用法:

' This statement prints TruePart, because the first argument is true.
Console.WriteLine(If(True, "TruePart", "FalsePart"))

' This statement prints FalsePart, because the first argument is false.
Console.WriteLine(If(False, "TruePart", "FalsePart"))

Dim number = 3
' With number set to 3, this statement prints Positive.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

number = -1
' With number set to -1, this statement prints Negative.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

下列範例說明最少運算評估的值。 範例顯示除了 divisor 為零以外,將變數 number 除以變數 divisor 的兩次嘗試。 若除數為零則應傳回 0,且不應嘗試執行除法,因為會產生執行階段錯誤。 因為 If 運算式使用最少運算評估,因此會根據第一個引數的值決定是要評估第二個還是第三個引數。 如果第一個引數為 True,且除數不是零,則可安全評估第二個引數並執行除法。 如果第一個引數為 False,則只會評估第三個引數且傳回 0。 因此,當除數是 0 時,就不會嘗試執行除法,也不會產生錯誤。 而因為 IIf 不是使用最少運算評估,所以即使第一個引數為 False,還是會評估第二個引數。 這樣就會造成執行階段的除以零錯誤。

number = 12

' When the divisor is not 0, both If and IIf return 4. 
Dim divisor = 3
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

' When the divisor is 0, IIf causes a run-time error, but If does not.
divisor = 0
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
' Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

用兩個引數呼叫 If 運算子

可以略過 If 的第一個引數。 這樣可以只使用兩個引數呼叫運算子。 使用兩個引數呼叫 If 運算子時,適用下列清單。

組件

詞彙

定義

argument2

必要項。 Object. 必須是參考或可為 Null 的型別。 當評估為 Nothing 以外的值時,進行評估及傳回。

argument3

必要項。 Object. 如果 argument2 評估為 Nothing 則加以評估及傳回。

當略過 Boolean 引數時,第一個引數必須是參考或可為 Null 的型別。 如果第一個引數評估為 Nothing,會傳回第二個引數的值。 在所有其他情況下,會傳回第一個引數的值。 下列範例說明此項評估如何運作。

' Variable first is a nullable type. 
Dim first? As Integer = 3
Dim second As Integer = 6

' Variable first <> Nothing, so its value, 3, is returned.
Console.WriteLine(If(first, second))

second = Nothing 
' Variable first <> Nothing, so the value of first is returned again.
Console.WriteLine(If(first, second))

first = Nothing
second = 6
' Variable first = Nothing, so 6 is returned.
Console.WriteLine(If(first, second))

請參閱

參考

Nothing (Visual Basic)

IIf

概念

可為 Null 的實值類型 (Visual Basic)