Eşit taraflar arasında fark/eşit ve == operatörü?
a == b
a.Equals(b)
arasındaki fark nedir?
CEVAP
a
b
türleri üstleniyor başvuru türleri:
Java, == her zaman için karşılaştırırkimlikiki değer aynı nesne için başvuruları olup olmadığını - yani. Bu da denirbaşvuru eşitlik. Java kullanıcı tanımlı operatör herhangi bir yüklenme yok.
C# değişir. Kolları olan aşırı yüklü operatör olmadıkça, == Java (referans eşitlik için karşılaştırma yani) gibi davranır. Eğer eşleşen bir aşırı yük varsa orada ancakderleme zamanı
a
b
tipleri (her iki dize olarak ilan etti Eğer onlar gibi) o zaman aşırı denecek. O istediğini nasıl davranabilir, ama genellikle uygulardeğer eşitliği(yania
b
farklı ama başvurabilireşitdeğerler ve hala iade true).
Her iki dilde, a.Equals(b)
a.equals(b)
arayın sanal Equals
/equals
yöntem ilan etti Object
, sürece bir daha özel aşırı yükleme oldu tanıttı tarafından derleme zamanı tür a
. Bu olabilir veya a
başvurduğu nesne yürütme zamanı yazın geçersiz kılınabilir. Hem de .NET ve Java Object
uygulama da kimliğini denetler. Bu bağlı olduğunu unutmayınyürütme zamanı yazınyerinederleme zamanı türbu aşırı çözünürlüğüne bağlıdır.
a
null
tabii ki a.equals(b)
a.Equals(b)
arama yapmaya çalıştığınızdaNullReferenceException
/NullPointerException
bir alırsınız.
Arasında harmanlama çakışma "Sql_...
'eq, eql arasındaki fark ne, eşit...
Nasıl PHP eşitlik (== çift eşittir) ve...
Toplu değil-eşit operatörü...
Ne'eşit arasındaki fark, eql?, = ...