You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中为何readonly字典可执行“设置”操作?与非readonly有何区别?

关于readonly字典的疑问解答

为什么readonly字典能执行“设置”操作?

readonly修饰的是类的字段,不是字典这个集合对象本身。它的作用是限制这个字段不能被重新赋值——也就是不能再给这个字段分配一个新的字典实例(比如不能写myDict = new Dictionary<...>())。但字典是引用类型,字段里存的只是指向字典对象的引用,readonly管不到对象内部的状态修改,所以你依然可以给字典添加、修改键值对。

readonly和非readonly字典字段的差异

  • 非readonly字段:
    • 可以在类的任何方法、代码块里重新赋值,比如随时把它换成另一个字典实例
    • 当然也能正常修改字典的键值对内容
  • readonly字段:
    • 只能在字段声明时或者类的构造函数里赋值,之后再也不能改变这个字段指向的字典对象
    • 但和非readonly一样,完全可以修改字典内部的键值对,因为这是对象本身的操作,和字段的readonly限制无关

内容的提问来源于stack exchange,提问作者EBDS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:45:48