string.Empty与"",null的区别,用哪个更好呢?
来源:互联网 发布:dos重置网络 编辑:程序博客网 时间:2024/04/27 21:32
null是C#关键字,是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。s == “” s == string.Empty s.Equals(”") s.Equals(string.Empty) s.Length == 0
string.Empty就相当于"",但他俩和NULL是两码事。
据说是:string.Empty不分配存储空间
""分配一个长度为空的存储空间 所以string.Empty 比""效率要高点。(效率高是对的,但是到底是否分配存储空间,还不明确,待核实)
一个外国人做了一个测试,测试的对象有5种,分别是:
通过下列的测试代码(如要看请点击下面的加号),判断谁的效率更高~
测速代码
最后得到测试的结果如下:
[s == ""
]
- 空字符串, 10315.6250 毫秒
- 短字符串, 8307.8125 毫秒
- 长字符串, 8564.0625 毫秒
[s == string.Empty
]
- 空字符串, 3573.4375 毫秒
- 短字符串, 8307.8125 毫秒
- 长字符串, 8603.1250 毫秒
[s.Equals("")
]
- 空字符串, 9517.1875 毫秒
- 短字符串, 7537.5000 毫秒
- 长字符串, 7576.5625 毫秒
[s.Equals(string.Empty)
]
- 空字符串, 9540.6250 毫秒
- 短字符串, 7515.6250 毫秒
- 长字符串, 7607.8125 毫秒
[s.Length == 0
]
- 空字符串, 443.7500 毫秒
- 短字符串, 443.7500 毫秒
- 长字符串, 445.3125 毫秒
很明显用字符串的length属性是最快的。
得到以下结论:
用s.Equals("stringtocompare")
来判断非空字符串是否相等,用 s.Length == 0
来判断是否是空字符串(注意这里不能用这个来判断字符串为NULL的情况,否则会出现“未将对象引用设置到对象的实例”的错误)。
在2.0中判断字符串是否为空(包含NULL的情况)用String.IsNullOrEmpty(str) ;
- string.Empty与"",null的区别,用哪个更好呢?
- string.Empty与"",null的区别,用哪个更好呢?
- string.Empty与"",null的区别,用哪个更好呢?
- string.Empty 与 null 的区别
- string.Empty与null的区别
- ” ”、string.Empty、null的区别
- NULL与String.Empty的
- "",string.Empty , Null 区别
- string,empty "" null 区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- DBnull null String.Empty的区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- String.Empty,NULL和""的区别
- 乐乐
- 常用JS语句(二)
- 网页分析及XML存储与显示
- 文件服务器-GPMC建立组策略
- Javascript操作Select和Option (转转)
- string.Empty与"",null的区别,用哪个更好呢?
- 编程系列之:删数
- Servlet介绍(3)-----读取表单参数
- extern "C"---编译语言连接字符串(转载)
- 国际私法的一些复习资料
- #ifndef,#define,#endif的用法
- SQL查询语句精华使用简要
- 必须掌握的八个DOS命令
- php生成html