C#中,string str = null 与 string str =""有什么区别
C#中,string str = null 与 string str = " "有什么区别,请详细解释一下!
------解决方案--------------------string str = null 不分配内存。 string str = " " 分配字节为0的内存。
------解决方案--------------------string str = null 这种初始化方式并不规范
最好可以使用以下写法
string str=String.Empty;
string str=defalut(String);
------解决方案--------------------string 本身是一个引型类型,只是这个引用类型比较特殊
str = null 是把引型类型的对象,设为null
str = " " 是把string 对象的值设置为空
一般建议使用 string strTmp = string.Empty;
------解决方案--------------------string str=null;的实质是 char *ps = 0;
string str= " "; 的实质是 char *ps= " "; 或 char *ps= "\0 ";
也就是说
string str=null;表示str是一个为0的指针。不分配任何内存空间。
string str= " "; 表示str指向首元素为0(字符串结束标志)的字符数组。会分配内存空间,但是该内存空间的首位为0。