heartstill

博客园 首页 新随笔 联系 订阅 管理

String.Empty,NULL和""的区别

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://www.cnblogs.com/SAL2928/archive/2007/07/16/820437.html

其他几个相关链接:

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.

也就是说 判断字符串是否为空best的方法就是     str.Length==0 !

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

http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_frm/thread/a129a0cd26227ace/3a5b5f69e03b5ad4?hl=en&lr=&ie=UTF-8&oe=UTF-8&rnum=1&prev=/groups%3Fq%3DString.Empty%2Bvs%2B%2522%2522%2Bdotnet%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3DOqSV8eZ7BHA.2128%2540tkmsftngp03%26rnum%3D1#3a5b5f69e03b5ad4

posted on 2011-09-22 17:38  开始测试  阅读(210)  评论(0编辑  收藏  举报