SORU
22 EYLÜL 2008, PAZARTESİ


== vs Nesne.Equals(object).NET

Bu yüzden, ne zaman bir karşılaştırmalı acemi acemi olduğum şu anda düşündüm ki bu iki şey vardı sözdizimsel şeker birbirimizi, yani bunu kullanarak bir yere sadece kişisel bir tercih. Zaman içinde, bu ikisi aynı şey, hatta varsayılan bir uygulama değil (this this) bulmak için geldim. Meseleyi daha fazla karıştırmamak için, her bir geçersiz/ayrı ayrı tamamen farklı anlamları için aşırı olabilir.

Farkları Nelerdir, Bu iyi bir şey, ve ne zaman/neden birini kullanmak gerekir?

CEVAP
22 EYLÜL 2008, PAZARTESİ


string x = "hello";
string y = String.Copy(x);
string z = "hello";

Eğer x aynı işaret testi y nesne:

(object)x == (object)y  // false
x.ReferenceEquals(y)    // false
x.ReferenceEquals(z)    // true (because x and z are both constants they
                        //       will point to the same location in memory)

x test y değer: aynı dize

x == y        // true
x == z        // true
x.Equals(y)   // true
y == "hello"  // true

Bu Java için farklı olduğunu unutmayın. Java == operatör Java yaygın bir hatadır bu kadar aşırı değildir:

y == "hello"  // false (y is not the same object as "hello")

String karşılaştırma her zaman .equals() kullanmak gerekir

y.equals("hello")  // true

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006