OrElse İşleci (Visual Basic)
İki ifadede kısa devre kapsayıcı mantıksal ayrıştırma gerçekleştirir.
Sözdizimi
result = expression1 OrElse expression2
Parça
result
Gerekli. Herhangi bir Boolean
ifade.
expression1
Gerekli. Herhangi bir Boolean
ifade.
expression2
Gerekli. Herhangi bir Boolean
ifade.
Açıklamalar
Derlenen kod başka bir ifadenin sonucuna bağlı olarak bir ifadenin değerlendirmesini atlayabilirse mantıksal işlemin kısa devre olduğu söylenir. değerlendirilen ilk ifadenin sonucu işlemin nihai sonucunu belirlerse, ikinci ifadeyi değerlendirmeye gerek yoktur, çünkü nihai sonucu değiştiremez. Atlanan ifade karmaşıksa veya yordam çağrıları içeriyorsa kısa devre performansı artırabilir.
İfadelerden biri veya her ikisi de olarak değerlendirilirse True
, result
olur True
. Aşağıdaki tabloda nasıl result
belirlendiği gösterilmektedir.
Varsa expression1 |
Ve expression2 |
değeri result : |
---|---|---|
True |
(değerlendirilmedi) | True |
False |
True |
True |
False |
False |
False |
Veri Türleri
işleci OrElse
yalnızca Boole Veri Türü için tanımlanır. Visual Basic, ifadeyi değerlendirmeden önce her işleneni Boolean
gereken şekilde dönüştürür. Sonucu sayısal bir türe atarsanız, Visual Basic sonucu Boolean
türünden False
0
olur ve True
olur -1
gibi bir türe dönüştürür.
Daha fazla bilgi için bkz . Boole Türü Dönüştürmeleri.
Aşırı Yükleme
Or İşleci ve IsTrue İşleci aşırı yüklenebilir; başka bir deyişle bir işlenen söz konusu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. ve IsTrue
işleçlerinin aşırı yüklenmesi Or
işlecin davranışını OrElse
etkiler. Kodunuz ve IsTrue
öğesini aşırı yükleyen Or
bir sınıf veya yapı kullanıyorsaOrElse
, yeniden tanımlanmış davranışlarını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.
Örnek 1
Aşağıdaki örnek, iki ifadede mantıksal ayrıştırma gerçekleştirmek için işlecini kullanır OrElse
. Sonuç, iki ifadeden birinin doğru olup olmadığını gösteren bir Boolean
değerdir. İlk ifade ise True
, ikinci ifade değerlendirilmez.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
Yukarıdaki örnek sırasıyla , True
ve False
sonuçlarını True
üretir. hesaplamasında firstCheck
, birinci ifade zaten True
olduğundan ikinci ifade değerlendirilmez. Ancak, ikinci ifade hesaplamasında secondCheck
değerlendirilir.
Örnek 2
Aşağıdaki örnekte iki yordam çağrısı içeren bir If
...Then
deyimi gösterilmektedir. İlk çağrı döndürürse True
, ikinci yordam çağrılmaz. İkinci yordam, kodun bu bölümü çalıştığında her zaman gerçekleştirilmesi gereken önemli görevleri gerçekleştirirse bu beklenmeyen sonuçlara neden olabilir.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If