首页 > Windows开发 > 详细

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

时间:2015-09-19 18:16:30      阅读:327      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!