C# 2.0 问题和状况

C# 2.0 问题和状况,c#-2.0,C# 2.0,代码如下: if(var != "" && var.startswith("somestring")) { do something } 这个代码很麻烦;据我所知,var!=“”将首先求值,如果为true,则将求值其他部分,但此概念不起作用:) 如果var的值为null,那么我将得到一个“nullreference”异常;也就是说 var!=未对null进行求值 请帮忙 谢谢, Rahul我想你的意思是null而不是”: 注意:var在C#的更高版本中是一个保留关键字。我想

代码如下:

if(var != "" && var.startswith("somestring"))
 { do something }
这个代码很麻烦;据我所知,var!=“”将首先求值,如果为true,则将求值其他部分,但此概念不起作用:)

如果var的值为null,那么我将得到一个“nullreference”异常;也就是说 var!=未对null进行求值

请帮忙

谢谢,
Rahul

我想你的意思是
null
而不是



注意:
var
在C#的更高版本中是一个保留关键字。

我想你的意思是
null
而不是


注意:
var
是C#的更高版本中的保留关键字。

在C#中,空字符串和空字符串之间存在差异。您必须检查所有3种情况,事实上,C#仅包含用于此情况的helper方法:

if(!string.IsNullOrEmpty(var) && var.StartsWith("somestring"))
{
   // do something
}
在C#中,空字符串和空字符串之间存在差异。您必须检查所有3种情况,事实上,C#仅包含用于此情况的helper方法:

if(!string.IsNullOrEmpty(var) && var.StartsWith("somestring"))
{
   // do something
}
var!=“”与var不一样!=空。

var!=“”与var不一样!=空。

“”是有效的
字符串
-它的长度恰好为0。但它不是空的

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

“”是一个有效的
字符串
-它的长度恰好为0。但它不是空的


要检查
null
,请写入
var!=空

如果变量可能为空,则在尝试执行任何类型的处理(即使是简单的比较)之前,需要检查其是否为空,否则将出现此“nullreference”异常

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

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

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

您将var与“”进行比较,而不是将var与“”进行比较,而不是将var与NULL进行比较空的测试是多余的,在某些情况下,如果写入的条件是
,则它可能不正确!var.StartsWith
而不是
var.StartsWith
…虽然我同意你的观点,但我认为OP希望将null和空字符串条件合并在一起,这是很常见的。所以我要让代码保持原样。空测试是多余的,在某些情况下,如果写的条件是
,它可能是不正确的!var.StartsWith
而不是
var.StartsWith
…虽然我同意你的观点,但我认为OP希望将null和空字符串条件合并在一起,这是很常见的。所以我要让代码保持原样。是的,我想空检查甚至不是必需的
var
实际上是一个上下文关键字;做
int var=0是合法的在C#3/4中。@Ani:哦,完全忘记了;谢谢@Ani很酷,我不知道这一点,但仅仅因为你可以并不意味着你应该。是的,我想空支票甚至没有必要
var
实际上是一个上下文关键字;做
int var=0是合法的在C#3/4中。@Ani:哦,完全忘记了;谢谢@阿尼很酷,我不知道,但仅仅因为你能,并不意味着你应该。谢谢你们每一个人的自发回应。是的,我知道了;如果我检查var!=null而不是var!=""; 那我就冷静了。我认为对我来说,最好的选择是使用String.IsNullOrEmpty方法。再次感谢。如果您是从文本框中获取数据并使用.NET 4.0,我建议您使用String.IsNullOrWhiteSpace仅检查空格字符以及null和空字符。感谢各位的回复。是的,我知道了;如果我检查var!=null而不是var!=""; 那我就冷静了。我认为对我来说,最好的选择是使用String.IsNullOrEmpty方法。再次感谢。如果您从文本框中获取数据并使用.NET 4.0,我建议您使用String.IsNullOrWhiteSpace来检查是否只有空格字符以及null和空字符。