登録: 14年前

最終更新: 14年前

#8 new タスク

Equals メソッドでの null チェックの方法を統一する

報告者: sarai 担当者:
優先度: マイルストーン:
コンポーネント: Framework キーワード:
関係者: 機能:
顧客: ブロックチケット:
依存チケット: 開始予定日:
終了予定日: 進捗率(%):
見積工数(時間): 対応リビジョン:
最終修正日: 最終終了日:

詳細

== 演算子を実装しているクラスでは、Equals メソッド内の null チェックに if (ReferenceEquals(other, null)) としている箇所がある。(例えば MemberFinder クラス内の CollectionIdentity クラス。)

その正当性をチェックし、妥当であれば統一する。

作業時間情報

合計作業時間: 0 時間

更新履歴 (1)

comment:1 更新者: sarai (14年前)

ReferenceEquals(other, null) が正しい。

もし、other == null と比較し、そのクラスで == 演算子をオーバーロードしていると、== 演算子オーバーロードが呼び出される。そのクラスが継承されていなければ、多少冗長であっても結果としてはうまくいくが、もし継承していて継承したクラスが Equals メソッド内で other == null を呼び出していると == 演算子オーバーロードと継承したクラスの Equals 交互に呼び出され続けてスタックオーバーフローする。

詳しい使い方は TracTickets を参照してください。