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

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014
  • The Computer Chronicles

    The Computer

    7 Kasım 2012