SORU
9 HAZİRAN 2009, Salı


Eşit taraflar arasında fark/eşit ve == operatörü?

a == b a.Equals(b) arasındaki fark nedir?

CEVAP
9 HAZİRAN 2009, Salı


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(yani a 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • EvilControllers

    EvilControll

    20 Ocak 2008