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ç
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
, IsNot
ve 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 False
olup olmadığını result
True
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 Single
Double
Single
biriyle karşılaştırdığınızda, ifade olarak Double
dönüştürülür. Bu davranış, Visual Basic 6'da bulunan davranışın tersidir.
Benzer şekilde, türündeki bir ifadeyi veya Decimal
Double
türünde Decimal
Single
bir ifadeyle karşılaştırdığınızda, ifade veya Double
olarak 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
. Off
olduğunda Option Strict
ve ya da expression1
expression2
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 Double nesneler, 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 True
gö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
.