我遇到了这段代码:
if (txtUPC.Text.ToString() != null)
...并且想知道这个测试是否有效 - text 属性是否可能为空?txtUPC 不是动态创建的控件。当然,它可以是空的,或者只包含空格,但为空?如果是这样,我想知道如何。再说一次,在 text 属性上调用 ToString() 似乎也像穿着带腰带的吊带。
更新
所以在我看来,对我来说(记住:.NET 1.1,Windows CE/Compact Framework),这是:
if (txtUPC.Text.Trim() != string.Empty)
...比这更好的测试:
if (txtUPC.Text.ToString() != null)
然而,在更专注地凝视这段代码时,无论如何,外部或内部的手套似乎都是多余的/不必要的。请注意该方法包括的两个 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();
}
. . .
似乎一个看门人/拳手就足够了——要么这样检查:
if (txtUPC.Text.Trim() != string.Empty)
...或者这样:
if (txtUPC.Text.Trim().Length > 0)
一种?