当前位置: 代码迷 >> ASP.NET >> |M| if(spName==null || spName.Length=0) 好还是 if(spName==null || spName="")解决方案
  详细解决方案

|M| if(spName==null || spName.Length=0) 好还是 if(spName==null || spName="")解决方案

热度:8071   发布时间:2013-02-25 00:00:00.0
|M| if(spName==null || spName.Length=0) 好还是 if(spName==null || spName="")
if(spName==null   ||   spName.Length=0)  
好还是  
if(spName==null   ||   spName= " ")
还是
if(spName==null   ||   spName=String.Empty)


------解决方案--------------------------------------------------------
String.IsEmptyOrNull(spName)

比较方便

但是用Length效率最高
------解决方案--------------------------------------------------------
这个一般看个人习惯,后两种没有什么差别吧,以前有人讨论过的

弱弱的说,楼主“||”后面都少了一个“=”
------解决方案--------------------------------------------------------
个人觉得这个最好
if(spName==null || spName== " ")

两个字简单,简单就是硬道理

而且 " "这个符号表达的意思最清楚,明了,
啊!我真想赞美他,到底是谁发明的,这么简单的一个符号,就能表达这么多的意思
不管是学什么的懂一点点简单编程的人都能明白这个意思

String.Empty就要看清楚是那几个字母才行,单独看没什么问题,可是跟一堆代码混在一起就不好看了,最郁闷是经常有新同学问这个属性是什么意思啊

spName.Length感觉就有点无聊,又不是计算长度,反正是字符串,指向的是个 " "就行,为什么还要多算个长度
------解决方案--------------------------------------------------------
if(null ==spName|| " "==spName) 好

------解决方案--------------------------------------------------------
直接 if(spName.Length==0)不行么?为什么要加上 || spName ==null???
------解决方案--------------------------------------------------------
无所谓。
如果从效率看,Length好一些,但现在的计算机还在乎这点效率吗?

用String.IsEmptyOrNull(spName)或者if(spName==null || spName= " ")更自然一些,编程最好不要让这些琐碎的东西打断思路,这才是重要的。
------解决方案--------------------------------------------------------
一般判断
spName == " " 效率是最低的,因为堆里要生成一个新的空字符串实例

判断
spName.Length的效率一般比较高,因为它是整数的比较

但用spName.Length之前是要 判断 spName == null的,否则spName.Length可能会引发异常

清清月儿的博客上有专题探讨这个,有兴趣可以去查一下
------解决方案--------------------------------------------------------
太好了,好好学习
------解决方案--------------------------------------------------------
String.IsEmptyOrNull(spName)

微软推荐用这个的,如果不这样,代码分析的时候会有警告的。
------解决方案--------------------------------------------------------
按效率来说,
if(spName==null || spName.Length==0)效率是最高的

但是个人还是喜欢用String.IsNullOrEmpty
应该看上去直观清晰
如果没有很大的循环或者对效率要求极高,这点牺牲不算什么


------解决方案--------------------------------------------------------
if(spName==null || spName== " ")
还是
if(spName==null || spName==String.Empty)
---------------------》
这两种还是有很大区别
String.Empty是静态变量,已经构造好了,只需要调用equals方法比较
而== " "要在堆中生成一个string实例,然后再调用equals方法
------解决方案--------------------------------------------------------
spName.length=0 最好,效率最高
------解决方案--------------------------------------------------------
String.IsNullOrEmpty
  相关解决方案