.net String.IsNullOrEmpty()的相反或替代方式

l7wslrjt  于 2022-11-26  发布在  .NET
关注(0)|答案(4)|浏览(132)

我写了这样一个剧本,很管用:

if (String.IsNullOrEmpty(item.Description))
{
    tbItemInput.Rows.Add(tbRow2);
    tbItemInput.Rows.Add(tbRow3);
    tbItemInput.Rows.Add(tbRow4);
    tbItemInput.Rows.Add(tbRow5);
}
else if (item.Description.Equals("euro"))
{
    tbItemInput.Rows.Add(tbRow4);
    tbItemInput.Rows.Add(tbRow5);
    tbItemInput.Rows.Add(tbRow2);
    tbItemInput.Rows.Add(tbRow3);
}
else // I assume that this will always be "euro6" entry
{
    tbItemInput.Rows.Add(tbRow2);
    tbItemInput.Rows.Add(tbRow3);
    tbItemInput.Rows.Add(tbRow4);
    tbItemInput.Rows.Add(tbRow5);
}

但我真的不喜欢它,因为我是一个php程序员,我不知道如何在ASP.NET中正确地编写它
其思想是,如果值item.Description不存在或者是“euro6”,它就有一个选项,但是,如果值是“euro6”,那么就有另一个选项。

if ( $description == "euro" ) {
    // first option
} else {
    // second option
}

但在.NET中,如果没有设置该值,就会出现错误,因此我做了一个糟糕的变通办法。
我能得到一些帮助,使这是正确的方式?

2guxujil

2guxujil1#

“I get an error”相当模糊-如果使用item.Description.Equals("euro")),则会得到NullReferenceException,但这应该没问题:

if (item.Description == "euro")
{
    tbItemInput.Rows.Add(tbRow4);
    tbItemInput.Rows.Add(tbRow5);
    tbItemInput.Rows.Add(tbRow2);
    tbItemInput.Rows.Add(tbRow3);
}
else
{
    tbItemInput.Rows.Add(tbRow2);
    tbItemInput.Rows.Add(tbRow3);
    tbItemInput.Rows.Add(tbRow4);
    tbItemInput.Rows.Add(tbRow5);
}
vsmadaxz

vsmadaxz2#

if (String.IsNullOrEmpty(item.Description) || item.Description == "euro6")
{
    // Euro6 or default option
}
else 
{
    // Euro option
}

或者更简单

if (item.Description == "euro")
{
    // Euro option
}
else 
{
    // Not euro option(empty or euro6 or whatever)
}
6ie5vjzr

6ie5vjzr3#

试试这种代码

if (!String.IsNullOrEmpty(item.Description))   //check for item.Description is not empty and not null
            {
               if (item.Description.Equals("euro"))   // check for determine  item.Description has contain "euro"
                {
                 /*code for when item.Description has contain "euro"*/
                }
              else
                {
                    /*code for when item.Description not contain "euro"*/
                }              
            }
8ehkhllq

8ehkhllq4#

我知道这很老套,但我还是要说。

这行不通:

if (!String.IsNullOrEmpty(item.Description))

此变体将起作用:

if (!(String.IsNullOrEmpty(item.Description)))

相关问题