• C# readonly 与 const


    readonly代表着只读,const代表着不变, 在讲readonly 与const的区别之前,先讲只读与不变的区别。只读说明不能写,但并不意味着不变,不变代表着常数,永远不会变化,好像是废话。举例来说,一个人的真实出生日期是不变的。当这个人注册邮箱,填写个人的信息时,年龄一项是只读的,系统会根据该人的出生日期自动计算出年龄,不允许用户修改年龄。但这并不意味着年龄不会变化,去年25岁,今年肯定要显示26岁。


    readonly的使用场景:只能修饰field,编译期知道字段是只读的,不允许再次赋值。但field的值有可能在运行期才确定下来,比如下面的代码:

    private readonly DateTime now = DateTime.Now;

    要到程序运行的时候,才知道now的值。

    const的使用场景:出了可以修饰field,还可以修饰方法中的local variable,但是必须在编译期就确定下来field或者local variable的值,比如下面的代码:

    const double Pi = 3.1415926;

    const只能修饰primitive type 以及很特殊的引用类型string 和 null(string是不可变字符串,每次修改,都相当于重新创建了一个),为什么不能修饰其他的引用类型,因为其他的引用类型在编译期不能知道他们的确切值。

  • 相关阅读:
    Domain Space
    Class WriteGroupAttribute
    HelloCube:IJobForEach
    HelloCube:ForEach
    组件
    世界
    DOTS默认情况下的性能
    ECS适合你吗?
    DOTS原则和愿景
    Packages window(包窗口)
  • 原文地址:https://www.cnblogs.com/nzbbody/p/2306614.html
Copyright © 2020-2023  润新知