1

重複の可能性:
オブジェクトを null と比較するのではなく、null をオブジェクトと比較する際の何が問題なのか

一部の開発者は、C# で次の null オブジェクト チェックを使用しています。

if (null == myObject)
{

}

それよりも:

if (myObject == null)
{

}

私は 2 番目のステートメントを好みます。なぜなら、(私にとっては) 左から右に自然に読めるからです。

最初のものを使用する理由はありますか? パフォーマンス上の利点はありますか、それとも純粋に好みですか?

4

3 に答える 3

13

一部の人々 (主に C 開発者) は最初の方法を好みます。記号を 1 つ忘れる=とコードが C でコンパイルされないからです。

たとえば、忘れたとき=

int a = 0;

if(a=1) //Accidental assignment, luckily the C# compiler warns us for this. The C compiler wouldnt.
{

}    
if(1=a) // This is not logical, and not valid in either C# or C.
{

}

ただし、Jamietre が指摘したように、C とは異なり、C# では暗黙的に int をブール値にキャストすることは無効です。コンパイラはまだエラーを生成します。ただし、ブール値を次のように比較すると機能しますif(a == true)。ただし、それ自体はかなり奇妙です== true

于 2012-06-26T13:32:50.447 に答える
2

純粋に味わう。どちらもまったく同じものを返します。

于 2012-06-26T13:32:44.427 に答える
0

コマ、ブラケットなどと同じ純粋な味。

于 2012-06-26T13:32:31.643 に答える