If İşleci (Visual Basic)

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

Sözdizimi

If( [argument1,] argument2, argument3 )

İşleç üç bağımsız değişkenle çağrıldıysa

Üç bağımsız değişken kullanılarak çağrıldığında If , ilk bağımsız değişken olarak Booleanatanabilecek bir değer olarak değerlendirilmelidir. Bu Boolean değer, diğer iki bağımsız değişkenin hangilerinin değerlendirilip döndürüleceğini belirler. Aşağıdaki liste yalnızca işleç üç bağımsız değişken kullanılarak çağrıldığında If geçerlidir.

Parça

Süre Tanım
argument1 Gerekli. Boolean. Değerlendirilecek ve döndürülecek diğer bağımsız değişkenleri belirler.
argument2 Gerekli. Object. olarak değerlendirilirse argument1 değerlendirilir Trueve döndürülür.
argument3 Gerekli. Object. değerlendiriliyorsa argument1 veya Boş Değer olarak değerlendirilen False null atanabilirBoolean bir değişkense argument1 değerlendirilir ve döndürülür.

If Üç bağımsız değişkenle çağrılan bir işleç, kısa devre değerlendirmesi kullanması dışında bir IIf işlev gibi çalışır. Bir IIf işlev her zaman bağımsız değişkenlerinin üçünü de değerlendirirken, üç bağımsız değişkeni olan bir If işleç bunlardan yalnızca ikisini değerlendirir. İlk If bağımsız değişken değerlendirilir ve sonuç bir Boolean değer TrueFalseveya olarak türetir. değer ise Trueargument2 değerlendirilir ve değeri döndürülür, ancak argument3 değerlendirilmez. İfadenin Boolean değeri ise Falseargument3 değerlendirilir ve değeri döndürülür, ancak argument2 değerlendirilmez. Aşağıdaki örneklerde üç bağımsız değişkenin If ne zaman kullanıldığı 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 örnekte kısa devre değerlendirmesinin değeri gösterilmektedir. Örnekte, sıfır dışında divisor değişkeni değişkene numberdivisor bölmeye yönelik iki deneme gösterilmektedir. Bu durumda, bir 0 döndürülmelidir ve bir çalışma zamanı hatasının sonucu olacağından bölme işlemini gerçekleştirme girişiminde bulunulmamalıdır. If İfade kısa devre değerlendirmesi kullandığından, ilk bağımsız değişkenin değerine bağlı olarak ikinci veya üçüncü bağımsız değişkeni değerlendirir. İlk bağımsız değişken doğruysa, bölen sıfır değildir ve ikinci bağımsız değişkeni değerlendirmek ve bölmeyi 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 işlemi gerçekleştirme girişiminde bulunulmaz ve hata sonucu alınmaz. Ancak, IIf kısa devre değerlendirmesi kullanmadığından, ilk bağımsız değişken false olduğunda bile ikinci bağımsız değişken 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ıldıysa

iç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ını sağlar. Aşağıdaki liste yalnızca işleç iki bağımsız değişkenle çağrıldığında If geçerlidir.

Parça

Süre Tanım
argument2 Gerekli. Object. Başvuru veya null atanabilir değer türü olmalıdır. dışında bir şeye Nothingdeğerlendirildiğinde değerlendirilir ve döndürülür.
argument3 Gerekli. Object. olarak değerlendirilirse argument2 değerlendirilir Nothingve döndürülür.

Boolean Bağımsız değişken atlandığında, ilk bağımsız değişken bir başvuru veya null atanabilir 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 örnekte bu değerlendirmenin nasıl çalıştığı gösterilmektedir:

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