• C#里面const和readonly


    一、const关键字限定一个变量不允许被改变。

    使用const在一定程度上可以提高程序的安全性和可靠性。

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

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

    3.常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取值来初始化常量。(如果const int a = b + 1; b是一个变量,显然不能在编译时就计算出结果,所以常量是不可以用变量来初始化的。)

    4.常数声明可以声明多个常数。

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

    6.常数可以参与常数表达式。如:const int a = 2;const int b=a+3。

    二、readonly允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。
    1.readonly是在计算时执行的,所以它可以用某些常量初始化。
    2.readonly是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。
    三、const与readonly区别
    1.const字段只能在该字段的声明中初始化;readonly字段可以在声明或构造函数中初始化,因此,根据所使用的构造函数,readonly字段可能具有不同的值。 2.const字段是编译时常量,而readonly字段可用于运行时常量。
    3.const默认就是静态的,而readonly如果设置成静态的就必须显示声明,这时候const就相当于static readonly来修饰一个常量,并此时由readonly修饰的常量必须在声明的同时就初始化。
    4.const对于引用类型的常数,可能的值只能是string和null。readonly可以是任何类型。
  • 相关阅读:
    多态
    抽象类和接口
    面向对象3
    类的继承 设计模式
    面向对象2
    面向对象
    复习
    对json的简单认识
    关于AJAX
    PHP配置开发环境
  • 原文地址:https://www.cnblogs.com/yj716716yj/p/9355263.html
Copyright © 2020-2023  润新知