私は次のように彼のヌルチェックを書くのファンだ同僚を持っている:"ReferenceEquals(myObject、null)"は "myObject == null"よりも優れていますか?
if (!ReferenceEquals(myObject, null))
私が、一方で、読み、好むために、この構文は扱いにくい見つける:
if (myObject != null)
私はオペレータのオーバーロードに関してReferenceEqualsのメリットについて議論するいくつかの記事やスタックオーバーフローに関する質問がありましたが、オペレータのオーバーロードシナリオの外側では、ReferenceEquals vs ==に何らかの利点がありますか?
あなたの友人のバージョンがチェックは、互換性があり、問題がなる(読みにくくていることは注目に値すると同等だ、それら通常は)。 – keyser
また、上記よりも悪いですが、 'if(!Object.ReferenceEquals(myObject、null)) 'と打つ必要があります。 –
@ReedCopseyメソッドは、(直接的または間接的な)基本クラス 'System.Object'から静的な' ReferenceEquals'メソッドを継承するクラスまたは構造体の内部にあるため、入力する必要はありません。だから上のように書くことはOKです( 'new'メソッドを使って継承したメソッドを隠すことはもちろん可能ですが、それは悪い例外です)。 –