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

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • guau . .

    guau . .

    25 Ocak 2008
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006