如果字符串不为空或返回空

时间:2018-11-17 11:59:42

标签: c#

我知道如何检查字符串是否为NullOrWhiteSpace。但是我想使我的代码更短。如果我的字符串为null或为空,则返回一个值。

现在我使用这个:

string Foo=textbox1.Text;
if(string.IsNullOrWhiteSpace(textbox1.Text);
  textbox1.Text="UserName";

是否可以使用一行代码返回此结果?

string Foo=textbox1.Text ?? "UserName";

在此示例中,返回“”;因此,它认为我的文本框不为null,也没有返回我想要的结果。 我的案子有没有可行的例子?

2 个答案:

答案 0 :(得分:6)

textbox1.Text永远不会为null。如果文本框为空,则为“”,不为null。您可能会使用

string Foo = string.IsNullOrWhiteSpace(textbox1.Text) ? "UserName": textbox1.Text;

答案 1 :(得分:2)

null 合并运算符仅与null一起使用。不是空字符串。

您可以编写扩展方法来执行您想要的操作。

public static class EX
{
    public static string IfNullOrWhiteSpace(this string s, string replacement)
    {
        if (string.IsNullOrWhiteSpace(s))
        {
            return replacement;
        }

        return s;
    }
}

像这样使用它:

string Foo = textbox1.Text.IfNullOrWhiteSpace("UserName");