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

  • andony5589

    andony5589

    7 Aralık 2011
  • BioHunta

    BioHunta

    28 Mayıs 2006
  • Eric Enge

    Eric Enge

    2 Kasım 2009