両方のオブジェクトが値型ではなく、両方が Equals(...) メソッドをオーバーライドした型を表していると仮定すると、以下の間に機能上の違いはありますか?
- 通話中
obj1.Equals(obj2)
- 呼び出し
Object.Equals(obj1, obj2)
...または機能的に同じですか?
私が読んでいる Apress の本 (Pro C# 2008) は、実際には非常に優れており、このメソッド (およびReferenceEquals(...)
) を「(非常に役立つ) 静的メソッド」と呼んでいますが、ここでの利点を理解するのに苦労しています。
ReferenceEquals(...)
2 つのオブジェクトが同じオブジェクトを参照しているかどうかを判断できるため (メソッドと演算子がオーバーライドされているかどうかに関係なく)、ユーティリティを確認できEquals(...)
ます==
。
もう一方については...それほどではありません。ここで何かが足りないのですか?