AND条件问题

时间:2011-02-16 22:27:10

标签: c#-2.0

以下代码:

if(var != "" && var.startswith("somestring"))
 { do something }

这段代码令人不安;至于我的理解var!=“”将首先进行评估然后如果为真,则其他部分将被评估,但这个概念似乎不起作用:)

如果var的值为null,那么我得到一个“nullreferrence”异常;意思是 var!= null未获得评估。

请帮助。

谢谢, 拉胡

5 个答案:

答案 0 :(得分:4)

在C#中,空字符串和空字符串之间存在差异。您必须检查所有3个案例,事实上,C#包含一个帮助方法,仅适用于这种情况:

if(!string.IsNullOrEmpty(var) && var.StartsWith("somestring"))
{
   // do something
}

答案 1 :(得分:3)

我认为您的意思是null而不是""

if (var != null && var.startswith("somestring"))
{ do something }

P.S。:var是C#的更高版本中的保留关键字。

答案 2 :(得分:0)

var!=“”与var!= null不同。

答案 3 :(得分:0)

“”是一个有效的string - 恰好它的长度为0.但它不是null

要检查null,请写下var != null

答案 4 :(得分:0)

如果您的变量有可能为null,则需要在尝试进行任何类型的处理(即使是简单的比较)之前检查它是否为null,否则您将获得此“nullreference”异常

if(var != null){
//gitter done
}