C# 中是否有任何与 IsNullOrEmpty 相反的东西

Is there anything in C# that is the opposite of IsNullOrEmpty

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

这是文本行。

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

这个的反义词是什么?

{

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

}

在 Winforms TextBox 控件的上下文中,您根本不必为 null 测试 .Text 属性。 可悲的是,我找不到这方面的文档,我担心它是 mdsn => docs 移动的牺牲品,但我已经在 Visual Studio.

中验证了它

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

考虑到这一点,这段代码的反面:

while (string.IsNullOrEmpty(TextBox.Text))

可以减少到这样:

while (TextBox.Text != "")

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

while (TextBox.Text.Trim() != "")
while (!string.IsNullOrWhitespace(TextBox.Text))

但现在我需要提出另一点:none 这些选项在控件上执行 Invoke,这意味着这必须是 运行ning 在 UI 线。 在你的 UI 线程上 运行 一个像这样的 while() 循环是非常糟糕的。 你指望用户打破循环,但是与此同时,您阻塞了整个用户界面,程序甚至在处理最终会解除阻塞的输入时都会遇到困难。

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