私はTuple<T1,T2>
のためにソースコードを見ていたし、そのGetHashCode()
方法はthis internal helperを使用しています。複数のフィールドからHashCodeを生成するための共通のユーティリティを使用する必要がありますか?
Int32 IStructuralEquatable.GetHashCode(IEqualityComparer comparer) {
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1), comparer.GetHashCode(m_Item2));
}
internal static int CombineHashCodes(int h1, int h2) {
return (((h1 << 5) + h1)^h2);
}
オブジェクトの比較として、したがって、GetHasCode()
の使用は、私はCLRかどうかを確認するために興味津々な一般的なタスクです。 NETはこれを行うヘルパー/ユーティリティを提供しているので、同じコードを何度も繰り返し書く必要はなく、エラーが発生する危険性がありますか?
タプルをコピーしないでください。衝突する可能性があります。そして、あなたはどのようにエラーを導入できますか? – Paparazzi
パパラッチの衝突は許可されます –
@ Mr.Boyそれはあなたがそれらを望んでいるという意味ですか? – Paparazzi