黑马程序员技术交流社区
标题:
string str = "" 和 string str = null 还有 string str = string.Empty
[打印本页]
作者:
追梦无悔
时间:
2013-10-14 23:50
标题:
string str = "" 和 string str = null 还有 string str = string.Empty
本帖最后由 追梦无悔 于 2013-10-15 10:22 编辑
string str = "" 和 string str = null 还有 string str = string.Empty;有什么区别吗?主要是在堆内存中是如何变化的呢?
作者:
Liu阳
时间:
2013-10-15 00:03
string str=""和string str = string.empty;没有区别,其实都是共享同一个指向长度为0的空间。
string str=null;并没有指向堆中空间,哪也没指。
作者:
流离
时间:
2013-10-15 01:14
string str =string.Empty不分配存储空间
string str = null 没有创建内存空间,str中存放的是空引用指针;
string str = "" 创建了内存空间,str中存放的是指向堆中的指针。
当变量为int 型的时候,默认是"",而字符串类型的,默认的是null
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用
作者:
夏闯富
时间:
2013-10-15 08:27
本帖最后由 夏闯富 于 2013-10-15 08:40 编辑
string str=null 把这个引用指向了一个null,没有地址没有值的地方。
注:null 关键字是表示不引用任何对象的 null 引用的文字值。 null 是引用类型变量的默认值。 普通值类型不能为 null。 但是,C# 2.0 引入了可以为 null 值的类型。
string str="" 把这个引用指向了一个地址,地址里面存的是空的字符。
注:这个应该好理解,表示一个长度为0的字符串
string str=String.Empty 表示空字符串或者说零长度字符串, 与string str=""的 等号(=) 右边都表示一个意思,只是写法不同
String.Empty 内部是这样定义的:public static readonly string Empty="";
string str=String.Empty 只是是把Empty 等号右边的""赋值给str
所以说
:
string str=String.Empty 和string str=""是一个意思
作者:
有钱就有希望
时间:
2013-10-15 09:01
string str = ""就相当于 string str = string.Empty,他们是一样的,多用于初始化字符串。如果定义一个字串没有初始化,系统无法识别会报错。 string str = null ;null指的是什么都没有。
string str= "";会分配一个长度为空的存储空间 , string str = string.Empty;不会分配存储空间。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2