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 2023-08-13 12:17 panpeng666 阅读(39) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效