请问各路大侠:
string a = String.Empty;
strng b ="";
这两个有什么区别啊???
我看msdn上说 String.Empty 代表空字符串 ,
那么直接写a=""不就可以了吗?
为什么还要创造一个String.Empty出来??是不是多余的,
还是说String.Empty包括了我没有想到的情况 ,
菜鸟学生求助!
------解决思路----------------------
这个原因和C++中别名以及常量有点类似。因为人定义的东西会随着时间或者环境改变。就好比说现在的字符串都有不同的编码方式。如:unicode,utf8,utf16等等。为了确保移植和兼容,我们一般使用引用,不直接访问数据,这样将来改的时候只要改被引用的数据就好了。就好像你说你“”是空字符串,那如果我给你传了个“\0”,然后告诉你这是空字符串。那你到时候是把代码中所以位置的“”都改成“\0”,还是希望通过改String.Empty的返回值来实现好?
------解决思路----------------------
写成""和string.Empty都是一样的,不过一个就是微软定义了一个空的规范,其它" "," "这些都不是string.Empty
至于占内存,两者都是"",相同的字符串在内存里都是同一个