そのようなクラスがあるとしましょう:
class MyClass
{
    public string SomeValue { get; set; }
    // ...
}
ここで、プロパティがMyClass等しい場合、2 つのインスタンスが等しいとしましょう。したがって、それを表すメソッドとSomeValueを上書きします。を返しますが、同時に次のルールに従う必要があります。Object.Equals()Object.GetHashCode()Object.GetHashCode()SomeValue.GetHashCode()
- オブジェクトの 2 つのインスタンスが等しい場合、それらは同じハッシュ コードを返す必要があります。
- ハッシュ コードは、ランタイム全体で変更しないでください。
しかし、どうやらSomeValue変更される可能性があり、以前に取得したハッシュ コードが無効になる可能性があります。
クラスを不変にすることしか考えられませんが、この場合他の人が何をしているのか知りたいです。
そのような場合はどうしますか?そのようなクラスを持つことは、設計上の決定における微妙な問題を表していますか?