Ifstring的一个class轮不是空的或空的
在整个应用程序中,我通常会以各种理由使用这样的东西:
if (String.IsNullOrEmpty(strFoo)) { FooTextBox.Text = "0"; } else { FooTextBox.Text = strFoo; }
如果我打算使用它,我会创build一个返回所需string的方法。 例如:
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
如果没有人有更好的方法,他们使用?
有一个空合并运算符( ??
),但它不会处理空string。
如果你只对处理空string感兴趣,你可以使用它
string output = somePossiblyNullString ?? "0";
为了您的需要,有简单的条件运算符bool expr ? true_value : false_value
bool expr ? true_value : false_value
,您可以简单地使用/ else语句块设置或返回值。
string output = string.IsNullOrEmpty(someString) ? "0" : someString;
你可以使用三元运算符 :
return string.IsNullOrEmpty(strTestString) ? "0" : strTestString FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo;
这可能有助于:
public string NonBlankValueOf(string strTestString) { return String.IsNullOrEmpty(strTestString)? "0": strTestString; }
您可以编写您自己的扩展方法的stringtypes: –
public static string NonBlankValueOf(this string source) { return (string.IsNullOrEmpty(source)) ? "0" : source; }
现在你可以像使用任何stringtypes一样使用它
FooTextBox.Text = strFoo.NonBlankValueOf();
老问题,但认为我会添加这个帮助,
#if DOTNET35 bool isTrulyEmpty = String.IsNullOrEmpty(s) || s.Trim().Length == 0; #else bool isTrulyEmpty = String.IsNullOrWhiteSpace(s) ; #endif