C#基础readonly 与const
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;//正确
最新文章
- 浅谈WEB跨域的实现(前端向)
- Openfire 集群探究_压测情况
- linux 压缩命令详解
- ajax简单案例:字符串返回类型
- 谷歌chrome浏览器桌面提醒 webkitNotifications
- 【技术·水】浅谈Dism++清理插件开发
- ipad屏幕旋转后的代理
- 08_linux下安装chrome
- mysql学习(用户权限管理)
- Codeforces Round #309 (Div. 2)D
- LeetCode 226. Invert Binary Tree (反转二叉树)
- 2星|《IT真相》:日本咨询师面对美国云服务的发展,对日本IT业哀其不争
- Json列表数据查找更新
- 阿里AI设计师一秒出图,小撒连连惊呼,真相是...
- 6.8 lambda方法 6.9 枚举类
- Archive required for library “xxx” cannot be read or is not a valid zip file报错解决
- Spark内存分配诊断
- sql文件或连接数据库反向生成pdm文件
- es6小记
- Spring XML配置里的Bean自动装配
热门文章
- 【编程】辨异 —— proxy 与 delegate
- arguments对象----不定参数的实现方式
- 洛谷——P1021 邮票面值设计
- CSS笔记 - fgm练习 2-7 - 简易选项卡
- [D3] Start Visualizing Data Driven Documents with D3 v4
- Storm新特性之Flux
- amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse
- WebApi自定义返回类型和命名空间实现
- RMAN备份到NFS,报错 ORA-27054
- 如何在Win8/Win10上开启 dotNetFramework 2.0/3.5 功能