黑马程序员技术交流社区

标题: 关于C#中空字符串的问题 [打印本页]

作者: 迷你卡卡    时间: 2013-9-29 19:38
标题: 关于C#中空字符串的问题
本帖最后由 迷你卡卡 于 2013-9-29 20:27 编辑

想问一下,各位大神,关于空字符串的问题
比如,string str=null   和  string  str=""   这两种写法有什么区别吗?

作者: haxyek    时间: 2013-9-29 19:42
使用上没区别。
作者: 于振发    时间: 2013-9-29 19:54
string str=null   和  string  str=""     虽然都声明了string类型的str 这个变量,但是前者没有在内存中开辟空间, 后者在内存中开辟了空间,但是里面什么都没存
作者: -___Is、_C    时间: 2013-9-29 19:55
string str = null 不分配内存, string str ="" 分配字节为0的内存。
作者: 七里香    时间: 2013-9-29 20:06
在内存的分配上有那么一点点区别,string s=“”会在栈上保存一个地址,这个地址占4字节,指向内存堆中的某个长度为0的空间,这个空间保存的是str1的实际值。
而string s1=null同样会在栈上保存一个地址,这个地址也占4字节,但是这个地址是没有明确指向的,它哪也不指,其内容为0x00000000。
说白了就是s=“”时会在内存堆中占用一个长度为0的空间,而s=null时不会。
当然对于初学者来说没有什么区别,而且使用上也都差不多的。
一家之言,仅供参考{:soso_e100:}
作者: 迷你卡卡    时间: 2013-9-29 20:23
标题: RE: 关于C#中空字符串的问题
于振发 发表于 2013-9-29 19:54
string str=null   和  string  str=""     虽然都声明了string类型的str 这个变量,但是前者没有在内存中开 ...

恩恩  明白了 多谢





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2