C# でのこれらのコマンドの違いは何ですか
string text= " ";
1-string.IsNullOrEmpty(text.Trim())
2-string.IsNullOrWhiteSpace(text)
C# でのこれらのコマンドの違いは何ですか
string text= " ";
1-string.IsNullOrEmpty(text.Trim())
2-string.IsNullOrWhiteSpace(text)
IsNullOrWhiteSpace
優れたパフォーマンスを提供することを除いて、次のコードに似た簡易メソッドです。return String.IsNullOrEmpty(value) || value.Trim().Length == 0;
空白文字は Unicode 標準で定義されています。メソッドは、 メソッド
IsNullOrWhiteSpace
に渡されたときに true の値を返すすべての文字をChar.IsWhiteSpace
空白文字として解釈します。
最初のメソッドは、文字列が null または空白の文字列かどうかを確認します。あなたの例では、トリミングする前に null をチェックしていないため、null 参照のリスクがあります
1- string.IsNullOrEmpty(text.Trim())
2 番目のメソッドは、文字列が null であるか、文字列内の任意の数のスペース (空白文字列を含む) であるかをチェックします。
2- string .IsNullOrWhiteSpace(text)
メソッドIsNullOrWhiteSpace
は をカバーしますが、文字列に空白文字のみが含まれている場合IsNullOrEmpty
も返します。true
具体的な例では、アプローチ1でnull参照例外のリスクを冒すため、2を使用する必要があります。nullの可能性がある文字列でtrimを呼び出しているためです。
String.IsNullOrEmpty(string value)
true
文字列が null または空の場合に返します。参考までに、空の文字列は "" (2 つの二重引用符文字) で表されます。
String.IsNullOrWhitespace(string value)
true
文字列が null、空、またはスペースやタブなどの空白文字のみを含む場合に返します。
空白としてカウントされる文字を確認するには、次のリンクを参照してください: http://msdn.microsoft.com/en-us/library/t809ektx.aspx
あなたの文字列(あなたの場合は変数text
)がnullになる可能性がある場合、これは大きな違いになります:
1- string.IsNullOrEmpty(text.Trim())
--> null オブジェクトのmthodeを呼び出すための例外
2- string.IsNullOrWhiteSpace(text)
null の問題は内部でチェックされているため、これは正常に機能します。
最初のオプションを使用して同じ動作を提供するには、最初に null でないかどうかを何らかの方法で確認してから、trim() メソッドを使用する必要があります
if ((text != null) && string.IsNullOrEmpty(text.Trim())) { ... }