Top > プログラミング > .NET Tips> 自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更する

自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更する」への評価、コメント

評価

良い / 悪い = 11 / 1 (「良い」の割合 = 0.917 , 人気度 = 0.990

評価する

コメント一覧


通常のコメント
匿名 2020/05/14 (Thu) 23:03:30
リンク「Equals および等値演算子 (==) 実装のガイドライン」がリンク切れになってます。

直リンクを見つけることができましたので報告いたします。
https://docs.microsoft.com/ja-jp/previous-versions/dotnet/netframework-2.0/7h9bszxx(v=vs.80)

なお、本文中で指摘されている誤訳の件(「Equalsメソッドをオーバーライド
する場合は、必ずIComparableも実装します」)も修正されています。

# でもこのページは古いと書かれているので、これに直すのはどうかなー。と思いますが…

通常のコメント
匿名 2017/04/14 (Fri) 11:44:44
> 値型の場合Equalsメソッドは、ビット等価(バイナリ表現が同じ)のときにtrueを返します。

正確にはビット等価と、リフレクションによるフィールドごとのEqualsの二通りがあるようです。
構造体に隙間がなく、ポインタを含まない場合にのみビット等価が使われるようです。
ビット等価が使われる場合は速く、リフレクションが使われる場合は劇的に遅くなります。

通常のコメント
管理人 2012/03/20 (Tue) 00:35:13
> 誤: Equals を実装するなら IComparable を実装
> 正: IComparable を実装するなら、Equals を実装
> MSDN 日本語版の翻訳の間違いのようですね。

本家の方まで調べていませんでした。ご指摘、ありがとうございました。修正しておきます。

通常のコメント
seo 2011/12/6 (Tue) 17:52:34
誤: Equals を実装するなら IComparable を実装
正: IComparable を実装するなら、Equals を実装
MSDN 日本語版の翻訳の間違いのようですね。

コメントの投稿

[説明]