const readonly 区别

readonly与const的区别,要使用const的理由是效率高。
(1)、const是编译常量,readonly是运行常量
(2)、const是修饰基础类型,readonly没有限制

public const int Cvalue = 100;
public const static int Cvalue = 100;  // 编译异常


readonly是运行是常量,第一次复制后不可改变。
"不可改变"分两层含义。
(1)、值类型变量,值本身是不可能改变的(readonly,只读)
(2)、引用类型变量,引用类型本身不可改变,字段

 public class ReadOnlyInstance
    {
        public ReadOnlyInstance(int id ) {
            this.ID = id;
            worker = new Worker();
        }
        public readonly int ID;
        public readonly Worker worker;
    }

    public class Worker
    {
        public string Name { get; set; } = "nickname";
        public int Age { get; set; } = 30;
        public override string ToString()
        {
            return "Name:" + Name + "age:" + Age;
        }
    }

测试:

 ReadOnlyInstance roi = new ReadOnlyInstance(13);
            // roi.worker = new Worker(); 异常
            Console.WriteLine("默认值");
            Console.WriteLine(roi.worker.ToString());

            roi.worker.Age = 20;

            // 修改值
            Console.WriteLine("修改值");
            Console.WriteLine(roi.worker.ToString());

结果:

 

posted on   panpeng666  阅读(39)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示