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

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • erikbjgn's channel

    erikbjgn's c

    12 Mayıs 2008
  • ExcelTutorials

    ExcelTutoria

    2 Mayıs 2009