• const和readonly的区别


    const是静态常量,const是编译时常量;readonly是动态常量,是运行时常量,const较高效,readonly较灵活。

    1.const默认是静态的,只能由类型来访问,不能与static同时使用;readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员;

    2.const只能应用在值类型和string类型上,其他引用类型常量只能定义为null,否则以new为const引用类型常量赋值,;readonly只读字段,可以使任意类型,但是对于引用类型字段来说,readonly不能限制对该对象实例成员的读写控制;编译器会引发“只能用null对引用类型(字符串除外)的常量进行初始化“的错误提示;

    3.const必须在字段声明时初始化;readonly可以再声明时,或者构造函数中进行初始化,不同的构造函数可以为readonly常量实现不同的初始值;

    4.const可以定义字段和局部变量;而readonly则只能定义字段;static readonly的初始化,必须在定义时,或者静态无参构造函数中进行;

      //声明字段

      private const string name="sssss";

      private readonly int age=24;

      private static readonly string name="ssssss";

    //声明局部变量

       public void Test()

       {

           const string name="ddddddd";

       }

      5.数组和结构体不能被声明为const常量,string类型可以被声明为常量,因为string类型的字符串恒定特性,使得string的值具有只读特性;

  • 相关阅读:
    debian配置apache2.4配置虚拟主机遇到的问题
    Javascript关于attachEvent和addEventListener区别与兼容写法
    图解linux下top命令的使用
    idea报错:java 不支持发行版本5
    java-访问权限
    IDEA图标含义
    IDEA生成UML类图
    idea快捷键
    idea同时运行两个main()
    idea关闭vim编辑模式
  • 原文地址:https://www.cnblogs.com/xiaolifeidao/p/3817644.html
Copyright © 2020-2023  润新知