SORU
19 EYLÜL 2008, Cuma


Neden '397' ReSharper GetHashCode geçersiz kılmak için kullanılır?

Birçoğunuz gibi, ReSharper geliştirme sürecini hızlandırmak için kullanıyorum. Bir sınıf eşitlik üyeleri geçersiz kılmak için kullandığınızda, kod-gen GetHashCode için üretir() gibi görünüyor:

    public override int GetHashCode()
    {
        unchecked
        {
            int result = (Key != null ? Key.GetHashCode() : 0);
            result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0);
            result = (result * 397) ^ ObjectId;
            return result;
        }
    }

Elbette orada kendi üyelerinden bazıları var, ama bilmek isteyen am 397 neden?

  • Benim sorum, orada bir şey olduğu daha iyi kaleme alınmış 'özel' hakkında 397 asal sayı dışında bir asal sayı olmak? olur EDİT:

CEVAP
19 EYLÜL 2008, Cuma


Muhtemelen çünkü 397 sonuç taşmaya neden değişken ve karma parçalar biraz karıştırmak için yeterli büyüklükte bir başbakan, bir karma kodları daha iyi dağılımını sağlamak. Hiçbir şey aynı büyüklükte başka bir asal ayıran 397 hakkında özellikle özel bir şey yok.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007