• 重学c#系列——string.empty 和 "" 还有null[二十]


    前言

    简单整理一下string.empty 和 "" 还有 null的区别。

    正文

    首先null 和 string.empty 还有 "" 是不一样的。

    null 关键字是表示不引用任何对象的空引用的文字值。 null 是引用类型变量的默认值。

    我们编辑高级语言的时候就可以表示的含义就是不引用任何对象的空引用。

    但也不能完全这样说,应该说在语法含义上是这样的,具体的肯定指向某个引用。

    string.empty 和 "" 实际上是一样的。

    // The Empty constant holds the empty string value. It is initialized by the EE during startup.
    // It is treated as intrinsic by the JIT as so the static constructor would never run.
    // Leaving it uninitialized would confuse debuggers.
    //
    //We need to call the String constructor so that the compiler doesn't mark this as a literal.
    //Marking this as a literal would mean that it doesn't show up as a field which we can access 
    //from native.
    public static readonly String Empty;
    

    也可以进行测试:

    static void Main(string[] args)
    {
    	string a = string.Empty;
    	string b = string.Empty;
    	string c = "";
    	Console.WriteLine(object.ReferenceEquals(a, b));
    	Console.WriteLine(object.ReferenceEquals(a,c));
    	Console.ReadKey();
    }
    

    这样可以看出其实是一样的,这其实是一个string 常量池的作用了。

    下一节介绍DateTime和DateTimeOffset的区别。

  • 相关阅读:
    angular----关于注入HTML
    js ---- 时间格式
    JQuery的父、子、兄弟节点查找方法
    js中的时间与毫秒数互相转换
    $.each ---- 跳出当前的循环
    关于ng-model取不到值的问题
    IOS 物理引擎
    斯坦福 IOS讲义 课件总结 三
    斯坦福 IOS讲义 课件总结 二
    斯坦福 IOS讲义 课件总结 一
  • 原文地址:https://www.cnblogs.com/aoximin/p/15722624.html
Copyright © 2020-2023  润新知