Karşılaştırma İşleçleri (Visual Basic)
Aşağıda, verilerde tanımlanan karşılaştırma işleçleri Visual Basic.
< Işleç
<= Işleç
> Işleç
>= Işleç
= Işleç
<> Işleç
Bu işleçler, eşit olup olmadığını ve eşit olup olmadığını belirlemek için iki ifadeyi karşılar. Is, IsNot ve ayrı Yardım sayfalarında ayrıntılı olarak ele Like alınmıştır. İlişkisel karşılaştırma işleçleri bu sayfada ayrıntılı olarak ele alınmıştır.
Syntax
result = expression1 comparisonoperator expression2
result = object1 [Is | IsNot] object2
result = string Like pattern
Bölümler
result
Gereklidir. Karşılaştırmanın Boolean sonucu temsil eden bir değer.
expression1, expression2
Gereklidir. Herhangi bir ifade.
comparisonoperator
Gereklidir. herhangi bir ilişkisel karşılaştırma işleci.
object1, object2
Gereklidir. Herhangi bir başvuru nesnesi adı.
string
Gereklidir. Herhangi String bir ifade.
pattern
Gereklidir. Herhangi String bir ifade veya karakter aralığı.
Açıklamalar
Aşağıdaki tablo, ilişkisel karşılaştırma işleçlerinin ve veya olup olmadığını belirleyen koşulların result listesini True False içerir.
| Operatör | True if (if) |
False if (if) |
|---|---|---|
< (Küçükten küçük) |
expression1 < expression2 |
expression1 >= expression2 |
<= (Küçük veya eşittir) |
expression1 <= expression2 |
expression1 > expression2 |
> (Büyüktür) |
expression1 > expression2 |
expression1 <= expression2 |
>= (Büyüktür veya eşittir) |
expression1 >= expression2 |
expression1 < expression2 |
= (Eşittir) |
expression1 = expression2 |
expression1 <> expression2 |
<> (Eşit değildir) |
expression1 <> expression2 |
expression1 = expression2 |
Not
= İşleci atama işleci olarak da kullanılır.
işleci, işleci ve işleci, önceki tabloda yer alan işleçlerden Is farklı olan belirli karşılaştırma IsNot Like işlevlerine sahip olur.
Sayıları Karşılaştırma
türünde bir ifadeyi Single türünden biri ile karşılaştırarak Double Single ifadeye Double dönüştürülür. Bu davranış, Visual Basic 6'da bulunan davranışın tam tersidir.
Benzer şekilde, türünde bir ifadeyi veya türünde bir ifadeyle karşılaştırarak Decimal Single ifade veya Double Decimal biçimine Single Double dönüştürülür. İfadeler Decimal için 1E-28'den küçük tüm kesirli değer kaybolabilir. Bu tür kesirli değer kaybı, iki değerin eşit değilken eşit olarak karşılaştırmasına neden olabilir. Bu nedenle, iki kayan nokta değişkenlerini karşılaştırmak için eşitlik ( = ) kullanırken dikkat gerekir. İki sayı arasındaki farkın mutlak değerinin kabul edilebilir küçük bir toleranstan az olup olmadığını test etmek daha güvenlidir.
Kayan nokta kararı
Kayan nokta sayılarıyla birlikte çalışıyorken bunların bellekte her zaman kesin bir temsili olmadığını unutmayın. Bu durum değer karşılaştırması ve Mod İşleci gibi bazı işlemlerden beklenmeyen sonuçlara neden olabilir. Daha fazla bilgi için bkz. Veri Türleri sorunlarını giderme.
Dizeleri Karşılaştırma
Dizeleri karşılaştırarak dize ifadeleri, ayara bağlı olarak alfabetik sıralama düzenine göre Option Compare değerlendirilir.
Option Compare Binary dize karşılaştırmalarını karakterlerin iç ikili gösterimlerinden türetilen bir sıralama düzenine temel alır. Sıralama düzeni kod sayfası tarafından belirlenir. Aşağıdaki örnek, tipik bir ikili sıralama düzeni gösterir.
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Text dize karşılaştırmalarını, uygulamanın yerel değeri tarafından belirlenen büyük/küçük harfe duyarlı olmayan, metinsel sıralama düzenine göre temel alır. Önceki Option Compare Text örnekteki karakterleri ayarp sıralarken, aşağıdaki metin sıralama düzeni geçerli olur:
(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)
Yerel Seçim Bağımlılığı
ayar her Option Compare Text ayarda bir dize karşılaştırması sonucu, uygulamanın çalıştır olduğu yerel ayara bağlı olabilir. İki karakter, bir yerelde eşit olarak karşılaştır ancak başka bir yerel değerde karşılaştırılamamalıdır. Oturum açma girişimini kabul etme gibi önemli kararlar almak için bir dize karşılaştırması kullanıyorsanız, yerele duyarlılık konusunda uyarı almanız gerekir. Yerel ayarı Option Compare Binary dikkate alan ayarını veya StrComp çağrılarak çağırmayı göz önünde bulundurabilirsiniz.
İlişkisel Karşılaştırma İşleçleri ile Türsüz Programlama
altında ifadelerle ilişkisel karşılaştırma Object işleçlerinin kullanımına izin Option Strict On verilmez. , Option Strict Off ve veya bir ifade expression1 expression2 Object olduğunda, çalışma zamanı türleri bunların nasıl karşılaştırıldıklarını belirler. Aşağıdaki tabloda, işlenenlerin çalışma zamanı türüne bağlı olarak ifadelerin nasıl karşılaştırıldıklarının ve karşılaştırmanın sonucu gösterir.
| İşlecilerin | Karşılaştırma: |
|---|---|
Hem String |
Karşılaştırmayı dize sıralama özelliklerine göre sırala. |
| Her ikisi de sayısal | nesnesine dönüştürülen Double nesneler, sayısal karşılaştırma. |
Bir sayısal ve bir String |
String, bir değerine dönüştürülür ve sayısal karşılaştırma Double gerçekleştirilir. , String olarak dönüştürülenene Double InvalidCastException ise bir atlar. |
Veya her ikisi de şundan farklı başvuru türleridir: String |
InvalidCastExceptionbir atılan. |
Sayısal karşılaştırmalar Nothing 0 olarak davranır. Dize karşılaştırmaları olarak Nothing davranır "" (boş bir dize).
Aşırı Yükleme
İlişkisel karşılaştırma işleçleri ( < . <=, , , , ) aşırı yüklenmiş olabilir, yani bir işlenen bu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışlarını > >= yeniden tanım = <> ilerler. Kodunuz böyle bir sınıf veya yapıda bu işleçlerden herhangi birini kullanıyorsa, yeniden tanımlanmamış davranışı ansanız emin olun. Daha fazla bilgi için bkz. İşleç Yordamları.
= İşlecinin atama işleci olarak değil yalnızca ilişkisel karşılaştırma işleci olarak aşırı yüklenebileceklerini fark edebilirsiniz.
Örnek
Aşağıdaki örnek, ifadeleri karşılaştırmak için kullanabileceğiniz ilişkisel karşılaştırma işleçlerinin çeşitli kullanımlarını gösterir. İlişkisel karşılaştırma işleçleri, belirtilen ifadenin değerlendirmesinin olup olmadığını Boolean temsil eden bir sonuç True döner. Dizelere > ve < işleçleri uygulayan karşılaştırma, dizelerin normal alfabetik sıralama düzeni kullanılarak yapılır. Bu sipariş, yerel ayar ayarınıza bağlı olabilir. Sıralamanın büyük/büyük/büyük/büyük harfe duyarlı olup olmadığı, Seçenek Karşılaştırması ayarına bağlıdır.
Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
Yukarıdaki örnekte ilk karşılaştırma döndürür ve False kalan karşılaştırmalar True döndürür.