码迷,mamicode.com
首页 > Windows程序 > 详细

C#中string.Empty和""、null的区别

时间:2015-09-19 18:19:17      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

  

  string.Empty是string类的一个静态常量,而""则表示一个空字符串。

  string是一种特殊的引用类型,它的null值则表示没有分配内存。

  使用ILSpy反编译String类,可以看到string.Equalus方法重写了Object的Equalus()方法:先比较引用,再比较字符串的内容,地址相同,值必相同。

 1     // 重写Object方法
 2     [__DynamicallyInvokable, ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
 3         public override bool Equals(object obj)
 4         {
 5             if (this == null)
 6             {
 7                 throw new NullReferenceException();
 8             }
 9             string text = obj as string;
10             return text != null && (this == obj || (this.Length == text.Length && string.EqualsHelper(this, text)));
11         }
12     // 重载Equals
13        [__DynamicallyInvokable, ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
14         public bool Equals(string value)
15         {
16             if (this == null)
17             {
18                 throw new NullReferenceException();
19             }
20             return value != null && (this == value || (this.Length == value.Length && string.EqualsHelper(this, value)));
21         }

  string.Empty和空字符串比较结果:

 1      static void Main(string[] args)
 2         {
 3             String emptyString = "";
 4 
 5             // True
 6             Console.WriteLine(emptyString == String.Empty);
 7 
 8             // True
 9             Console.WriteLine(emptyString.Equals(string.Empty));
10         }

 

C#中string.Empty和""、null的区别

标签:

原文地址:http://www.cnblogs.com/xinhuan/p/4821860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!