私は通常、アプリケーション全体でさまざまな理由でこのようなものを使用します:
if (String.IsNullOrEmpty(strFoo))
{
FooTextBox.Text = "0";
}
else
{
FooTextBox.Text = strFoo;
}
頻繁に使用する場合は、目的の文字列を返すメソッドを作成します。例えば:
public string NonBlankValueOf(string strTestString)
{
if (String.IsNullOrEmpty(strTestString))
return "0";
else
return strTestString;
}
次のように使用します:
FooTextBox.Text = NonBlankValueOf(strFoo);
私にとってこれを行うC#の一部である何かがあるのかといつも思っていました。次のように呼び出すことができるもの:
FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0")
String.IsNullOrEmpty(strFoo) == true
の場合、戻り値である2番目のパラメーター
そうでない場合、誰かが使用するより良いアプローチがありますか?
Null合体演算子(??
)がありますが、空の文字列は処理しません。
Null文字列の処理のみに関心がある場合は、次のように使用します。
string output = somePossiblyNullString ?? "0";
特に必要な場合は、値を設定または返すif/elseステートメントブロックを単純に使用できる条件演算子bool expr ? true_value : false_value
があります。
string output = string.IsNullOrEmpty(someString) ? "0" : someString;
三項演算子 を使用できます。
return string.IsNullOrEmpty(strTestString) ? "0" : strTestString
FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo;
独自の Extension String型のメソッド:-
public static string NonBlankValueOf(this string source)
{
return (string.IsNullOrEmpty(source)) ? "0" : source;
}
これで、任意の文字列タイプで使用できます
FooTextBox.Text = strFoo.NonBlankValueOf();
これは役立つかもしれません:
public string NonBlankValueOf(string strTestString)
{
return String.IsNullOrEmpty(strTestString)? "0": strTestString;
}
古い質問ですが、私はこれを手伝うために追加すると思いました、
#if DOTNET35
bool isTrulyEmpty = String.IsNullOrEmpty(s) || s.Trim().Length == 0;
#else
bool isTrulyEmpty = String.IsNullOrWhiteSpace(s) ;
#endif