Nasıl hem dizeleri değiştirilebilir iki dize yapısı için GetHashCode uygulamak, | Netgez.com
SORU
16 EYLÜL 2008, Salı


Nasıl hem dizeleri değiştirilebilir iki dize yapısı için GetHashCode uygulamak,

C BÄ°R YAPISI VAR#:

public struct UserInfo
{
   public string str1
   {
     get;
     set;
   }

   public string str2
   {
     get;
     set;
   }   
}

Tek kural UserInfo(str1="AA", str2="BB").Equals(UserInfo(str1="BB", str2="AA"))

Nasıl bu yapı için GetHashCode işlevi geçersiz kılmak için?

CEVAP
16 EYLÜL 2008, Salı


MSDN:

Karma bir işlevi aşağıdaki özelliklere sahip olmalıdır:

  • EÄŸer iki nesne eÅŸit karşılaÅŸtırmak, her nesne için GetHashCode yöntem aynı deÄŸeri döndürür. EÄŸer iki nesne eÅŸit karşılaÅŸtırma deÄŸil, ancak iki nesne için GetHashCode yöntemleri farklı deÄŸerler dönmek zorunda deÄŸilsiniz.
  • Bir nesne için GetHashCode yöntemi sürekli aynı karma kodu Equals ... ... belirleyen bir nesne durumuna deÄŸiÅŸtirme yöntemi yok sürece dönmelidir. Bu uygulamanın geçerli yürütme için doÄŸrudur, ve farklı bir hash kodu eÄŸer uygulamayı yeniden çalıştırmak ise iade edilebilir unutmayın.
  • En iyi performans için bir karma iÅŸlev her giriÅŸ için rastgele bir dağıtım oluÅŸturmak gerekir.

Dikkate alarak doÄŸru yoldur:

return str1.GetHashCode() ^ str2.GetHashCode() 

^ diÄŸer deÄŸiÅŸmeli operasyon ile deÄŸiÅŸtirdi

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÃœL 2012
  • Shon Gonzales

    Shon Gonzale

    5 EKÄ°M 2014