readonly 与 const
readonly是运行时常量,const是编译期常量(在编译过程中已经把使用该值的都用值替代,不分配内存)readonly灵活性高,const效率高
readonly 可以修饰任何类型的常量,包括自定义类,const则只能修饰基元类型,枚举类型及字符串(const MyClass myClass 则错误写法)
用const修饰的则不能加static 修饰,编译期本来就是静态常量

readonly 可以在构造函数内对其多次赋值

public class Mouse
{
public readonly int ReadOnlyValue = 100;
public Mouse(int readonlyvalue)
{
ReadOnlyValue = readonlyvalue;//是正确的写法,可以多次赋值
}
}

Mouse mouse = new Mouse(300);//正确
mouse.ReadOnlyValue = 400;//错误

public class Mouse
{
public readonly Cat ReadOnlyValue = new Cat() { catValue = 100 };
public Mouse(Cat cat)
{
ReadOnlyValue = cat;
}
}
readonly对引用类型修饰的话,是不能再指向其他的实例,但可以对指向的引用实例值时可以改变的
Mouse mouse = new Mouse(new Cat() { catValue = 300 });
mouse.ReadOnlyValue.catValue = 400;//正确
mouse.ReadOnlyValue = new Cat() { catValue = 500 };//错误

Cat cat = new Cat() { catValue = 500 };
mouse.ReadOnlyValue.catValue = cat.catValue;//正确

最新文章

  1. 浅谈WEB跨域的实现(前端向)
  2. Openfire 集群探究_压测情况
  3. linux 压缩命令详解
  4. ajax简单案例:字符串返回类型
  5. 谷歌chrome浏览器桌面提醒 webkitNotifications
  6. 【技术·水】浅谈Dism++清理插件开发
  7. ipad屏幕旋转后的代理
  8. 08_linux下安装chrome
  9. mysql学习(用户权限管理)
  10. Codeforces Round #309 (Div. 2)D
  11. LeetCode 226. Invert Binary Tree (反转二叉树)
  12. 2星|《IT真相》:日本咨询师面对美国云服务的发展,对日本IT业哀其不争
  13. Json列表数据查找更新
  14. 阿里AI设计师一秒出图,小撒连连惊呼,真相是...
  15. 6.8 lambda方法 6.9 枚举类
  16. Archive required for library “xxx” cannot be read or is not a valid zip file报错解决
  17. Spark内存分配诊断
  18. sql文件或连接数据库反向生成pdm文件
  19. es6小记
  20. Spring XML配置里的Bean自动装配

热门文章

  1. 【编程】辨异 —— proxy 与 delegate
  2. arguments对象----不定参数的实现方式
  3. 洛谷——P1021 邮票面值设计
  4. CSS笔记 - fgm练习 2-7 - 简易选项卡
  5. [D3] Start Visualizing Data Driven Documents with D3 v4
  6. Storm新特性之Flux
  7. amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse
  8. WebApi自定义返回类型和命名空间实现
  9. RMAN备份到NFS,报错 ORA-27054
  10. 如何在Win8/Win10上开启 dotNetFramework 2.0/3.5 功能