Aracılığıyla paylaş


Karşılaştırma İşleçleri (Visual Basic)

Visual Basic'te tanımlanan karşılaştırma işleçleri aşağıdadır.

< Işleç

<= Işleç

> Işleç

>= Işleç

= Işleç

<> Işleç

Is İşleci

IsNot İşleci

Like İşleci

Bu işleçler iki ifadeyi karşılaştırarak bunların eşit olup olmadığını ve eşit olup olmadıklarını, farklı olup olmadıklarını belirler. Is, IsNotve Like ayrı Yardım sayfalarında ayrıntılı olarak ele alınıyor. İlişkisel karşılaştırma işleçleri bu sayfada ayrıntılı olarak ele alınıyor.

Sözdizimi

result = expression1 comparisonoperator expression2  
result = object1 [Is | IsNot] object2  
result = string Like pattern  

Parça

result
Gerekli. Boolean Karşılaştırmanın sonucunu temsil eden bir değer.

expression1, expression2
Gerekli. Herhangi bir ifade.

comparisonoperator
Gerekli. Herhangi bir ilişkisel karşılaştırma işleci.

object1, object2
Gerekli. Tüm başvuru nesnesi adları.

string
Gerekli. Herhangi bir String ifade.

pattern
Gerekli. Herhangi bir String ifade veya karakter aralığı.

Açıklamalar

Aşağıdaki tablo, ilişkisel karşılaştırma işleçlerinin listesini ve veya Falseolup olmadığını resultTrue belirleyen koşulları içerir.

Operatör True eğer False eğer
< (Küçüktür) expression1 < expression2 expression1>= expression2
<= (Küçüktür 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 de atama işleci olarak kullanılır.

işleci Is , IsNot işleci ve Like işleci, önceki tablodaki işleçlerden farklı belirli karşılaştırma işlevlerine sahiptir.

Sayıları Karşılaştırma

türündeki bir ifadeyi türünden SingleDoubleSingle biriyle karşılaştırdığınızda, ifade olarak Doubledönüştürülür. Bu davranış, Visual Basic 6'da bulunan davranışın tersidir.

Benzer şekilde, türündeki bir ifadeyi veya DecimalDoubletüründe DecimalSingle bir ifadeyle karşılaştırdığınızda, ifade veya Doubleolarak Single dönüştürülür. İfadeler için Decimal , 1E-28'den küçük kesirli değerler kaybolabilir. Bu tür kesirli değer kaybı, iki değerin eşit olmadığı durumlarda eşit olarak karşılaştırmasına neden olabilir. Bu nedenle, iki kayan nokta değişkenini karşılaştırmak için eşitlik (=) kullanırken dikkatli olmanız gerekir. İki sayı arasındaki farkın mutlak değerinin küçük bir kabul edilebilir toleranstan küçük olup olmadığını test etmek daha güvenlidir.

Kayan NoktaLı Kesinlik

Kayan noktalı sayılarla çalışırken, bunların bellekte her zaman kesin bir temsili olmadığını unutmayın. Bu, değer karşılaştırması ve Mod İşleci gibi belirli işlemlerden beklenmeyen sonuçlara yol açabilir. Daha fazla bilgi için bkz . Veri Türlerinde Sorun Giderme.

Dizeleri Karşılaştırma

Dizeleri karşılaştırdığınızda, dize ifadeleri, ayara bağlı Option Compare olarak alfabetik sıralama düzenlerine göre değerlendirilir.

Option Compare Binary dize karşılaştırmalarını, karakterlerin iç ikili gösterimlerinden türetilen bir sıralama düzenine göre temel alır. Sıralama düzeni kod sayfası tarafından belirlenir. Aşağıdaki örnekte tipik bir ikili sıralama düzeni gösterilmektedir.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text dize karşılaştırmalarını, uygulamanızın yerel ayarı tarafından belirlenen büyük/küçük harfe duyarlı olmayan, metinsel sıralama düzenine göre temel alır. Önceki örnekteki karakterleri ayarlayıp Option Compare Text sıraladığınızda, aşağıdaki metin sıralama düzeni uygulanır:

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Yerel Ayar Bağımlılığı

ayarladığınızda Option Compare Text, dize karşılaştırmasının sonucu uygulamanın çalıştığı yerel ayara bağlı olabilir. İki karakter bir yerel ayarda eşit olarak karşılaştırılsa da başka bir yerel ayarda karşılaştırılamayabilir. Oturum açma girişimini kabul edip etmeyeceğiniz gibi önemli kararlar almak için dize karşılaştırması kullanıyorsanız yerel ayar duyarlılığı konusunda uyarı vermelisiniz. Yerel ayarı dikkate alan ayarını Option Compare Binary veya çağırmayı StrCompgöz önünde bulundurun.

İlişkisel Karşılaştırma İşleçleri ile Türsüz Programlama

altında ifadelerle Object ilişkisel karşılaştırma işleçlerinin kullanılmasına izin verilmez Option Strict On. Offolduğunda Option Strict ve ya da expression1expression2 bir Object ifade olduğunda, çalışma zamanı türleri bunların nasıl karşılaştırılmasını belirler. Aşağıdaki tabloda, işlenenlerin çalışma zamanı türüne bağlı olarak ifadelerin nasıl karşılaştırılması ve karşılaştırma sonucu gösterilmektedir.

İşlenenler Karşılaştırma şu şekildedir:
Hem String Dize sıralama özelliklerine göre sıralama karşılaştırması.
Her ikisi de sayısal öğesine dönüştürülen Doublenesneler, sayısal karşılaştırma.
Bir sayısal ve bir String String bire Double dönüştürülür ve sayısal karşılaştırma gerçekleştirilir. String olarak dönüştürülemezseDouble, bir InvalidCastException oluşturulur.
Ya da her ikisi de String bir InvalidCastException atılır.

Sayısal karşılaştırmalar 0 olarak değerlendirilir Nothing . Dize karşılaştırmaları olarak (boş bir dize) olarak "" değerlendirilirNothing.

Aşırı Yükleme

İlişkisel karşılaştırma işleçleri (<. <=, >, >=, , =), <>aşırı yüklenebilir, yani bir işlenen bu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. Kodunuz bu işleçlerden herhangi birini böyle bir sınıf veya yapı üzerinde kullanıyorsa, yeniden tanımlı davranışı anladığınızdan 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üklenebildiğine dikkat edin.

Örnek

Aşağıdaki örnek, ifadeleri karşılaştırmak için kullandığınız 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 olarak değerlendirilip değerlendirilmediğini Truegösteren bir Boolean sonuç döndürür. dizelere > ve < işleçlerini uyguladığınızda, karşılaştırma, dizelerin normal alfabetik sıralama düzeni kullanılarak yapılır. Bu sıra, yerel ayarınıza bağlı olabilir. Sıralamanın büyük/küçük harfe duyarlı olup olmadığı, Seçenek Karşılaştırma 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 False ve kalan karşılaştırmalar döndürür True.

Ayrıca bkz.