zoukankan      html  css  js  c++  java
  • 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可以是任何类型。
  • 相关阅读:
    Redis QPS测试
    go语言下载及安装
    企业级Docker镜像仓库Harbor部署与使用
    Linux格式化数据盘
    【一周一Q】如何快速复制有规律内容
    聊一聊职业能力之执行力
    面试那些事
    使用gitlab时候 fork仓库不会实时从主仓库更新解决方案
    从给定字符串中提取姓名
    测试Websocket建立通信,使用protobuf格式交换数据
  • 原文地址:https://www.cnblogs.com/yj716716yj/p/9355263.html
Copyright © 2011-2022 走看看