A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐宏伟 中级黑马   /  2012-9-3 17:46  /  2827 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

判断字符串变量str是否为空的一下三种方法哪个性能更优:
a、str== " ";
b、str==String.Empty;
c、str.Length==0;

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

倒序浏览
{:soso_e153:}都没有搞懂,这个判断有什么作用吗?
回复 使用道具 举报
str.Length==0
效率更快
1.使用Length来检查一个字符串是否为空。
计算Length时,只需要检查内部数组的长度,不需要字节比较。而字节比较是比直接计算计算要慢很多的
2.在来看看string的一个构造函数
String   (Char[],   Int32,   Int32)   
将   String   类的新实例初始化为由   Unicode   字符数组、该数组内的起始字符位置和一个长度指示的值。
即string对象在本身构造时,就已经有一个参数是长度指示,他对外的表现就是Length
3.我们在来看看String.Empty本质,有一定c++和vb基础的都知道,一个字符串都有一个表示结尾的字节,net环境下也是如此,这个结尾的字节就是String.Empty
4.使用str==String.Empty要比str== " "快速因为String.Empty在内部是个常量

综上:
a、str== " ";
b、str==String.Empty;
c、str.Length==0;
c优于b,b优于a
这是我网上找的,你看一下吧,第一次在黑马论坛回复,以前都是逛论坛,看别人讨论的

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
str== " ";是对的,千万别写成str=null,null在C#中代表不指向任何值,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马