String.Empty 和 "" 和 null

来源:互联网 发布:闲置物品交换 数据库 编辑:程序博客网 时间:2024/04/28 08:20

不知不觉何时起,开始倾向于在代码中使用String.Empty。今天决定来探究一下

 

 

  
http://www.cnblogs.com/SAL2928/archive/2007/07/16/820437.html
 
string.Empty不分配存储空间
  ""分配一个长度为空的存储空间  
  所以一般用string.Empty

为了以后跨平台,还是用string.empty

在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:

string s = "";
string s2 = string.Empty;

if (s == string.Empty) {
  
// 
}
if语句成立


判定为空字符串的几种写法,按照性能从高到低的顺序是:

s.Length == 0  优于 s == string.Empty  优于 s == "" 


您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。

 

 

 

http://codebetter.com/blogs/brendan.tompkins/archive/2003/10/14/2585.aspx

String.Empty vs. ""

So, I just converted a bunch of code that used "" as an empty string like this:

if(myString == "") anotherString = "";

to

if(myString.Equals(String.Empty))  anotherString = String.Empty;

and I'm wondering if I did the right thing, using String.Empty. I hate having quoted strings in code and prefer to stay away from them whenever possible.  This generally leads to code that is more strongly typed, and easier to maintain, so using String.Empty intuitively feels better than ““.   But, I've actually found a concrete reason to use String.Empty - I did some research and found that in a test, str.Equals(String.Empty) is faster than comparing to ""!   Well, okay.  Research isn't the right word, “Doing one google search and accepting on faith the first post I saw” is slightly more accurate.  I even created a little graph of the claims in this post here, that String.Empty is faster.  I'm too lazy to do the test myself, so if you want to verify this, knock yourself out.  I do love making graphs though.

 
 
 

 

 

http://blogs.msdn.com/brada/archive/2003/04/22/49997.aspx 

String.Empty vs ""

As David implies, there difference between String.Empty and “” are pretty small, but there is a difference.  “” actually creates an object, it will likely be pulled out of the string intern pool, but still… while String.Empty creates no object… so if you are really looking for ultimately in memory efficiency, I suggest String.Empty.  However, you should keep in mind the difference is so trival you will like never see it in your code…

 

As for System.String.Empty or string.Empty or String.Empty… my care level is low ;-)

 

 

原创粉丝点击