当前位置: 代码迷 >> C# >> String.Empty的小疑点
  详细解决方案

String.Empty的小疑点

热度:242   发布时间:2016-05-05 05:23:39.0
String.Empty的小问题
请问各路大侠:

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
至于占内存,两者都是"",相同的字符串在内存里都是同一个
  相关解决方案