zoukankan      html  css  js  c++  java
  • C#中string.Empty和""、null的区别

     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         }
  • 相关阅读:
    2019 Multi-University Training Contest 4
    AC自动机
    trie
    Contest1802
    蓝桥杯-某电视台举办了低碳生活大奖赛
    蓝桥杯-有一群海盗(不多于20人),在船上比拼酒量
    蓝桥杯-福尔摩斯到某古堡探险
    蓝桥杯-标题:字符串比较
    蓝桥杯-题目:猜算式
    蓝桥杯-标题:算年龄
  • 原文地址:https://www.cnblogs.com/xinhuan/p/4821860.html
Copyright © 2011-2022 走看看