Equals() および Operator == をオーバーライドするためのガイドライン (C# プログラミング ガイド)に従って、equals(object) および equals(type) をオーバーライドするときに gethashcode をオーバーライドすることをお勧めします。
Equals をオーバーライドするための最適な実装については、無限の議論があることを理解しています。ただし、Equals の概念をもう少しよく理解し、自分で決定したいと思っています。
私の質問はおそらくちょっとばかげているでしょうが、ここに行きます:
- Equals(object) と Equals(type) (指定されたパラメーターとは無関係) の主な違いは何ですか?
私が理解している限り(そして私は完全に間違っている可能性があるので、これは同時に質問です):
Equals(object) は、オブジェクト参照が同じかどうか (デフォルトで) を調べる組み込みメソッドです。Equals(Type) は、作成するローカル メソッドです。実際、そのクラスには、2 つのオーバーロードを持つ Equals メソッドがあります。
- プロパティの等価性を 2 回チェックするのはなぜですか?
equals ( object)で:
return base.Equals(obj) && z == p.z;
そしてequals(type)で:
return base.Equals((TwoDPoint)p) && z == p.z;
Equals(type) メソッドを実装することが推奨されるのはなぜですか?
私の質問のほとんどは、質問 1 の私の発言にラップされています。したがって、間違った、または誤解を招くような議論に注意してください plz. また、お気軽に情報を追加してください。確かに役立ちます。
前もって感謝します