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

  • natescamp

    natescamp

    30 NİSAN 2009
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006