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

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006
  • tseyina

    tseyina

    2 AĞUSTOS 2006