• 【C#】 Const 和Readonly 的区别


    1.const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。

    如:

    const int x = 0;
    public const double gravitationalConstant = 6.673e-11;
    private const string productName = "Visual C#";

    常数声明的类型指定声明引入的成员类型。常数表达式必须产生具有目标类型或者可隐式转换为目标类型的类型的值。

    常数表达式是在编译时可被完全计算的表达式。因此,对于引用类型的常数,可能的值只能是 stringnull

    常数声明可以声明多个常数,例如:

    public const double x = 1.0, y = 2.0, z = 3.0;

    不允许在常数声明中使用 static 修饰符。

    常数可以参与常数表达式,如下所示:

    public const int c1 = 5;
    public const int c2 = c1 + 100;

    2.readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。

    只能在下列上下文中对 readonly 字段进行赋值:

    • 当在声明中初始化变量时,例如:public readonly int y = 5;

    • 对于实例字段,在包含字段声明的类的实例构造函数中;或者,对于静态字段,在包含字段声明的类的静态构造函数中。也只有在这些上下文中,将 readonly 字段作为 outref 参数传递才有效。

     

     

    readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常量,而 readonly 字段可用于运行时常量,

    如此行所示:public static readonly uint l1 = (uint)DateTime.Now.Ticks;


     


     

  • 相关阅读:
    vue环境搭建
    'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    文件上传
    json字符串解析为java对象
    自定义登录控制类Demo
    分页后台代码Demo
    主键回显
    angularjs变量的三种表示方式
    js往后台传参的方式
    同一路径下jsp能访问到,html不能访问到
  • 原文地址:https://www.cnblogs.com/cuishao1985/p/1738161.html
Copyright © 2020-2023  润新知