2

私が持っているとしましょう

if (textbox.Text != null && textbox.Text.Length > someNum)
{
    //some code
}

textbox.Text が null の場合、 null.Length が機能しないためにクラッシュしますか、それとも演算子が && であり、続行する意味がないため、最初の式の後で壊れますか?

4

4 に答える 4

8

これは「短絡評価」と呼ばれ、C# にはあります。はい、textbox.Textnull の場合、式の 2 番目の部分は評価されません。

詳細については、 http://msdn.microsoft.com/en-us/library/2a723cdk (v=VS.71).aspx を参照してください。

于 2012-06-25T20:52:40.273 に答える
2

はい、C# は論理短絡を行います。MSDN

于 2012-06-25T20:52:41.923 に答える
0

はい。ただし、その行を分割して Null をチェックします: 例外を返すかスローします。コードをより明確にします。

于 2012-06-25T20:53:43.520 に答える
0

最初の式が偽であることが判明した後、それは壊れます。これはショート サーキットと呼ばれ、多くの最新の言語 (C# や Java など) に共通しています。

これが、そもそもオブジェクトが null ではないことに依存する別の条件をチェックする前に、null をチェックすることをお勧めする理由です。

于 2012-06-25T20:52:48.903 に答える