• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 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         }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap