C#中有什么与IsNullOrEmpty相反的东西

时间:2018-10-11 02:56:31

标签: c# textbox isnullorempty

我需要找到与IsNullOrEmpty相反的东西吗?

这是文本行。

{
    while (string.IsNullOrEmpty(TextBox.Text))
}

这是相反的东西吗?

2 个答案:

答案 0 :(得分:2)

{

    while (!string.IsNullOrEmpty(TextBox.Text))

}

答案 1 :(得分:1)

在Winforms TextBox控件的上下文中,您根本不需要测试.Text的{​​{1}}属性。可悲的是,我找不到有关此文档,我担心这是mdsn => docs move的牺牲品,但我已经在Visual Studio中对其进行了验证。

您也可以验证它;尝试一下。使用文本框创建一个简单项目,并在代码中将其null设置为Text。然后检入调试器,您会看到它实际上是设置了一个空字符串。这样,TextBox控件就很好,大多数其他股票Winforms控件也是如此。

请记住,此代码的相反之处:

null

可以减少到这样:

while (string.IsNullOrEmpty(TextBox.Text))

尽管您可能还需要考虑空格,但这将是以下两行之一:

while (TextBox.Text != "")

但是现在我需要提出另一点:这些选项都没有在控件上执行while (TextBox.Text.Trim() != "") while (!string.IsNullOrWhitespace(TextBox.Text)) ,这意味着它必须在UI线程上运行。 在用户界面线程上运行这样的Invoke循环是非常糟糕的。您指望用户打破循环,但是与此同时,您阻止了整个用户界面,该程序甚至在处理输入时都会遇到困难,最终将其解锁。

相反,您需要处理按键事件,或者在用户尝试根据文本框值尝试启动操作时验证文本框,或者将其移至另一个线程。