If İşleci (Visual Basic)
Kullanan koşullu olarak iki değerden birini veren değerlendirme short-circuit.If işleç adlı üç bağımsız değişken veya iki bağımsız.
If( [argument1,] argument2, argument3 )
İşleci ile üç bağımsız değişken olarak adlandırılan
Zaman If olarak adlandırılan üç bağımsız değişkenleri kullanarak, ilk bağımsız değişken olarak çevrilebilir bir değere değerlendirmelidir bir Boolean.Boolean , Diğer iki bağımsız değişken Değerlendirilmiş ve döndürülen değeri belirleyecektir.Yalnızca aşağıdaki liste geçerlidir If işleç üç bağımsız değişkeni kullanılarak adlandırılır.
Bölümleri
Terim |
Tanım |
argument1 |
Gerekli.Boolean.Hangi değişkenlerin değerlendirmek ve dönmek için diğer belirler. |
argument2 |
Gerekli.Object.Değerlendirilmiş ve döndürülen if argument1 veren True. |
argument3 |
Gerekli.Object.Değerlendirilmiş ve döndürülen if argument1 değerlendiren False veya argument1 olan bir Boş'UBooleandeğerlendiren birdeğişken hiçbir şey. |
Bir Ifile üç bağımsız değişken olarak adlandırılan işleç çalışır gibi bir IIf işlev kullanan dışında değerlendirme short-circuit. Bir IIf işlev her zaman değerlendirir üç bağımsız değişkenleri, oysa bir Ifüç bağımsız değişkeni vardır işleç yalnızca ikilisi değerlendirir. İlk If bağımsız değişken değerlendirildi ve sonuç olarak artığını bir Boolean değeri, True veya False. Değer ise True, argument2 olduğu değerlendirilen ve değeri döndürülür, ancak argument3 değil değerlendirilir.Varsa değeri Boolean ifade False, argument3 olduğu değerlendirilir ve değeri döndürülür, ancak argument2 değil değerlendirilir.Aşağıdaki örnekler kullanımını göstermektedir If üç bağımsız değişkeni kullanıldığında:
' 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"))
Değerini aşağıdaki örnekte gösterilmektedir değerlendirme short-circuit.Örnek değişken ayırmak için iki girişimleri gösterirnumber değişken olarakdivisor olmadığı dışında divisor sıfırla doldurmak. Bu durumda, 0 iade edilmesi ve bir çalışma zamanı hata neden olur çünkü bölme gerçekleştirmek için girişimde yapılmalıdır.Çünkü If ifade kullanan short-circuit değerlendirme, ikinci veya üçüncü bağımsız değişken, ilk bağımsız değişkendeğişkenin değerine bağlı olarak değerlendirir.İlk bağımsız değişken doğru ise, böleni sıfırla doldurmak değil ve ikinci bağımsız değişken değerlendirmek ve bölme gerçekleştirmek güvenlidir.İlk bağımsız değişken yanlış ise, yalnızca üçüncü bağımsız değişken değerlendirilir ve 0 döndürülür.Bu nedenle, bölen 0 ise, bölme ve hiçbir hata sonuçları gerçekleştirmek için hiçbir girişimi yapılır.Ancak, çünkü IIf tarafından kullanılmayan değerlendirme short-circuit, ilk bağımsız değişken yanlış olsa bile ikinci bağımsız değişken değerlendirilir.Bu çalışma zamanı bölme neden olur-tarafından-sıfırla doldurmak hata.
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))
İşleci iki baðýmsýz deðiþkenle çağrılmışsa
İlk bağımsız değişken If atlanabilir.Bu işleç yalnızca iki baðýmsýz deðiþken kullanarak çağrılacak sağlar.Yalnızca aşağıdaki liste geçerlidir If işleç iki baðýmsýz deðiþkenle olarak adlandırılır.
Bölümleri
Terim |
Tanım |
argument2 |
Gerekli.Object.Bir başvuru ya da boş değer atanabilir tipolmalıdır.Değerlendirilen ve başka bir şey değerini aldığında döndürülen Nothing. |
argument3 |
Gerekli.Object.Değerlendirilmiş ve döndürülen if argument2 veren Nothing. |
Zaman Boolean bağımsız değişken atlanırsa, ilk bağımsız değişken , bir başvuru ya da boş değer atanabilir tipolması gerekir. İlk bağımsız değişken olarak değerlendirilirse Nothing, ikinci bağımsız değişken değeri verilir.Diğer durumlarda, ilk bağımsız değişken değişkenin değeri döndürülür.Aşağıdaki örnekte, bu değerlendirme 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))