SORU
29 NİSAN 2010, PERŞEMBE


'İEquatable ve geçersiz Nesne arasında ki fark ne.() Eşittir?

Gıda sınıfı başka bir sınıfa eşit olduğunda test etmek istiyorum. Daha sonra bir Liste karşı kullanacağım, ve kendi Listesini kullanmak istiyorum.() Yöntemini içerir. İEquatable uygulamak ya da sadece Nesne geçersiz kılmak gerekir.() Eşittir? MSDN:

Bu yöntem eşitlik belirler tarafından varsayılan eşitlik karşılaştırıcısı kullanarak, nesne tarafından tanımlanan bu uygulama İEquatable.T Equals yöntemi (listedeki değerleri yazın).

Fonksiyonları sınıflar/. bir sonraki sorum şu ki: NET çerçeve Nesnesi.() Eşittir? İlk etapta bunu kullanmalıyım?

Teşekkürler

CEVAP
29 NİSAN 2010, PERŞEMBE


Ana nedeni performans. Jenerik tanıttı vardı .NET 2.0*, Dictionary<K,V>, HashSet<T>*0, vb gibi düzgün bir sürü ders eklemek için başardık. Bu yapılar GetHashCode Equals ağır faydalanmak. Ama değer türleri için bu boks gerekli. IEquatable<T> bir yapı yok boks gereklidir bu yüzden kesinlikle yazılmış Equals bir yöntem uygulamaya olanak sağlar. Genel koleksiyonları ile değer türleri kullanarak, bu nedenle çok daha iyi performans.

Başvuru türleri olarak pek bir faydası yok ama IEquatable<T> Uygulama sık deniyor eğer bir fark yaratabilir System.Object alçı kaçınalım.

Jared Parson's blog rağmen belirtildiği gibi, hala Nesne geçersiz kılar uygulamak gerekir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008
  • pissengehen

    pissengehen

    26 EYLÜL 2006