C# 何かに値があるかどうか、何かが 0 より大きいかどうかを確認する必要がありますか? 質問する

C# 何かに値があるかどうか、何かが 0 より大きいかどうかを確認する必要がありますか? 質問する

プロジェクトに取り組んでいると、コーダーはチェックでこれを頻繁に行います。まず、nullable にint値があるかどうかをチェックし、次にそれが 0 より大きいかどうかをチェックします。なぜでしょうか。1 回のチェック (0 より大きいかどうか) で十分なのに、なぜ 2 回のチェックを行うのでしょうか。null は 0 より大きくないので、それは冗長ではないでしょうか。

ベストアンサー1

コードはおそらく冗長です。

もし私がint?そうなら:

if (i.HasValue && i.Value > 0)

は以下と同等です:

if (i > 0)

からマイクロソフト:

null 許容型の比較を実行する場合、null 許容型の一方の値が null で、もう一方が null でない場合、!= (等しくない) を除くすべての比較は false と評価されます。特定の比較が false を返したからといって、反対のケースが true を返すとは想定しないことが重要です。次の例では、10 は null より大きくも小さくも等しくもありません。num1 != num2 のみが true と評価されます。

おすすめ記事