黑马程序员技术交流社区

标题: 在C#中,string str = null与string str = “”的区别 [打印本页]

作者: 曹停    时间: 2012-2-18 21:13
标题: 在C#中,string str = null与string str = “”的区别
在C#中,string str = null与string str = “”的区别
作者: 莫洪刚    时间: 2012-2-20 12:43
string   str= " ",表示一个空字符串,被实列化了,占用了内存空间的,
string   str=null,表示一个空引用,没有占用空间而已。
一般string大多用作常量,不改变值。

作者: 什麽才是王道    时间: 2012-2-20 14:21
string   str= " ",已经程序代码中,已被执行后,就是被实例化,并且在内存中占用一块系统内存。
string   str=null,表示空应用!
作者: 孙琦    时间: 2012-2-20 23:04
关于string = "" 和string = null的区别楼上的已经讲解了,我在补充点,,

string str1 = "";
string str2 = string.Empty;
string str3 = null;
我测试过,str2就相当于str1他们的引用地址也就是在内存中的地址是一样的,但是一般情况下用string.Empty这个字段来初始化字符串,应为这是在内存中有个特殊的处理string的机制,要比str1 = ""这样优化的好点。str3 =null就不用说了,空引用,不占用空间
作者: 邓坤    时间: 2012-2-21 12:22
区别:1.null代表声明了一个空对象,对空对象只能做=或==操作,做其它操作就会出错。而“”则代表声明了一个对象实例,而这个对象实例的值是一个长度为0的空字符串。
         2.string str=null相当于定义一个句柄,也就是说有了这个引用,但这个引用并没有指向任何的内存空间。而string str=“”这个应用已经指向了一块内存空间,只不过他是空的,就是因为有了这个内存空间,所以他是一个实际的东西,所以你就可以对他进行操作了。
       3.null 可以赋值给任何对象,而“”就有一定的限制了。




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