我遇到了这段代码:
if (txtUPC.Text.ToString() != null)
Run Code Online (Sandbox Code Playgroud)
...并且想知道这个测试是否有效 - text属性是否可以为null?txtUPC不是动态创建的控件.它当然可以是空的,或者只包含空格,但是null?如果是这样,我想知道如何.然后再次,在文本属性上调用ToString()似乎也像带腰带的吊带一样.
所以在我看来,对我来说(记住:.NET 1.1,Windows CE/Compact Framework),这个:
if (txtUPC.Text.Trim() != string.Empty)
Run Code Online (Sandbox Code Playgroud)
......比这更好的测试:
if (txtUPC.Text.ToString() != null)
Run Code Online (Sandbox Code Playgroud)
然而,在更加专心地注视这段代码时,无论如何,似乎外部或内部的手套都是多余的/不必要的.请注意该方法包括的两个shibbeleth-pronunciation-checkers:
if (txtUPC.Text.ToString() != null)
{
if (txtUPC.Text.Length > 0)
{
. . .
else
{
MessageBox.Show("Please enter a value in the item field");
txtUPC.Focus();
}
}
else
{
MessageBox.Show("Please enter a value in the item field");
txtUPC.Focus();
}
. . .
Run Code Online (Sandbox Code Playgroud)
这似乎是一个看门人/高手就足够了 - 要么这样检查:
if (txtUPC.Text.Trim() != string.Empty)
Run Code Online (Sandbox Code Playgroud)
......或者这样:
if (txtUPC.Text.Trim().Length > 0)
Run Code Online (Sandbox Code Playgroud)
一个?
我认为它永远不会为空(也许winforms/asp.net/wpf文本框之间存在差异,但我不这么认为).虽然更好的检查是:
if (String.IsNullOrEmpty(txtUPC.Text) { ... }
Run Code Online (Sandbox Code Playgroud)
或者,根据您的要求:
if (String.IsNullOrWhiteSpace(txtUPC.Text) { ... }
Run Code Online (Sandbox Code Playgroud)
是的,.ToString()不需要.
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |