• 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         }
  • 相关阅读:
    C# 防止同一个账号多次登录(cache方法)
    前端--关于Canvas
    前端--关于客户端javascript
    前端--关于javascript函数
    前端--关于javascript对象
    前端--关于javascript基础
    前端--关于背景、浮动和定位
    前端--关于CSS盒模型
    前端--关于CSS文本
    前端--关于css选择器
  • 原文地址:https://www.cnblogs.com/xinhuan/p/4821860.html
Copyright © 2020-2023  润新知