黑马程序员技术交流社区
标题:
string 类型在赋空值时
[打印本页]
作者:
胡元江
时间:
2013-2-26 10:44
标题:
string 类型在赋空值时
null string.empty "" 三者之间有没有什么实际的区别。在内存中间是不是都是不占位置的用哪一个好一般(虽然对性能影响不会很大,但是弄清楚总是好的)
作者:
xiaoxiang_04
时间:
2013-2-26 10:51
“”和null的区别就是“”分配存储空间,null没分配存储空间
string.empty ,你转到定义发现是这么写的,public static readonly String Empty = "";
也就是说string.empty也是分配了一片存储空间,该地址指向堆内存的一块长度为0的区域,该区域存放空字符串"".也就是说""和string,empty效果是一样的.那么,它们的区别在哪里呢?在性能上.string.empty在语法上进行了优化,当编译msil时,会直接把改字符串引用指向系统""空间上;而""则先在字符串表查找是否有"",然后才指向它.所以string.empty的性能优于“”.当判断字符串是否为空时,性能上str.length==0>str==string.empty>str=="".
作者:
生活墨墨
时间:
2013-2-26 10:57
初始化的时候用 string.empty 比较好。 "" 占用了内存。为null的时候如果赋值会报错。 判断是否为空的时候 str.length>0 是最好的,性能最好
作者:
李景荣
时间:
2013-2-26 11:35
string.empty==“” ,是占用了内存空间的
null 没有占用内存空间
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2