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()
循环是非常糟糕的。 你指望用户打破循环,但是与此同时,您阻塞了整个用户界面,程序甚至在处理最终会解除阻塞的输入时都会遇到困难。
相反,您需要处理按键事件,或者在用户尝试根据文本框值启动操作时验证文本框,或者将其移至另一个线程。
我需要找到与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()
循环是非常糟糕的。 你指望用户打破循环,但是与此同时,您阻塞了整个用户界面,程序甚至在处理最终会解除阻塞的输入时都会遇到困难。
相反,您需要处理按键事件,或者在用户尝试根据文本框值启动操作时验证文本框,或者将其移至另一个线程。