If İşleci (Visual Basic)

İki değerden birini koşullu olarak döndürmek için kısa devre değerlendirmesi kullanır. Ifİşleci üç bağımsız değişkenle veya iki bağımsız değişkenle çağrılabilir.

Syntax

If( [argument1,] argument2, argument3 )

Eğer işleci üç bağımsız değişkenle çağrılırsa

IfÜç bağımsız değişken kullanılarak çağrıldığında, ilk bağımsız değişken, bir olarak yayınlanabileceğiniz bir değer olarak değerlendirilmelidir Boolean . Bu Boolean değer, diğer iki bağımsız değişkenin hangisinin değerlendirildiği ve döndürüldüğü belirlenir. Aşağıdaki liste yalnızca If işleç üç bağımsız değişken kullanılarak çağrıldığında geçerlidir.

Bölümler

Süre Tanım
argument1 Gereklidir. Boolean. Değerlendirmek ve döndürmek için diğer bağımsız değişkenlerden hangisinin verileceğini belirler.
argument2 Gereklidir. Object. , Olarak değerlendirilirse, değerlendirilir ve döndürülür argument1 True .
argument3 Gereklidir. Object. Değer olarak değerlendirilen ve değeri argument1 False argument1 Nothing olarak değerlendirilen null yapılabilir bir değişken ise, değerlendirilir Boolean ve döndürülür.

IfÜç bağımsız değişkenle çağrılan bir operatör, IIf kısa devre değerlendirmesi kullanması dışında bir işlev gibi çalışır. Bir IIf işlev her zaman bağımsız değişkenlerini değerlendirir, ancak If üç bağımsız değişkeni olan bir operatör bunlardan yalnızca ikisini değerlendirir. İlk If bağımsız değişken değerlendirilir ve sonuç değer olarak atama yapılır Boolean True False . Değer ise True , argument2 değerlendirilir ve değeri döndürülür, ancak argument3 değerlendirilmez. Booleanİfadenin değeri ise False , argument3 değerlendirilir ve değeri döndürülür, ancak argument2 değerlendirilmez. Aşağıdaki örneklerde, If üç bağımsız değişkenin kullanıldığı zaman kullanımı gösterilmektedir:

' 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"))

Aşağıdaki örnek, kısa devre değerlendirmesinin değerini gösterir. Örnek, değişken sıfır dışında değişkeni değişkene bölmek için iki deneme gösterir number divisor divisor . Bu durumda, 0 döndürülmeli ve bir çalışma zamanı hatası sonucunda, Bölüm gerçekleştirmek için bir deneme yapılmamalıdır. Ifİfade kısa devre değerlendirmesi kullandığından, ilk bağımsız değişkenin değerine bağlı olarak ikinci ya da üçüncü bağımsız değişkeni değerlendirir. İlk bağımsız değişken true ise, bölen sıfır değildir ve ikinci bağımsız değişkeni değerlendirmek ve bölme gerçekleştirmek güvenlidir. İlk bağımsız değişken false ise, yalnızca üçüncü bağımsız değişken değerlendirilir ve 0 döndürülür. Bu nedenle, bölen 0 olduğunda, bölme gerçekleştirmek için bir deneme yapılmaz ve hata sonucu yoktur. Ancak, IIf kısa devre değerlendirmesi kullanmadığı için ikinci bağımsız değişken, ilk bağımsız değişken false olduğunda bile değerlendirilir. Bu, çalışma zamanı sıfıra bölme hatasına neden olur.

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))

Eğer işleci iki bağımsız değişkenle çağrılırsa

İçin ilk bağımsız değişken If atlanabilir. Bu, işlecin yalnızca iki bağımsız değişken kullanılarak çağrılmasına olanak sağlar. Aşağıdaki liste yalnızca If işleç iki bağımsız değişkenle çağrıldığında geçerlidir.

Bölümler

Süre Tanım
argument2 Gereklidir. Object. Başvuru veya null yapılabilir bir değer türü olmalıdır. ' Den başka bir şeyi değerlendirirken değerlendirilir ve döndürülür Nothing .
argument3 Gereklidir. Object. , Olarak değerlendirilirse, değerlendirilir ve döndürülür argument2 Nothing .

BooleanBağımsız değişken atlanırsa, ilk bağımsız değişken bir başvuru veya null yapılabilir değer türü olmalıdır. İlk bağımsız değişken olarak değerlendirilirse Nothing ikinci bağımsız değişkenin değeri döndürülür. Diğer tüm durumlarda, ilk bağımsız değişkenin değeri döndürülür. Aşağıdaki örnek, bu değerlendirmenin nasıl çalıştığını göstermektedir:

' 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))

Ayrıca bkz.