回顾下常量在声明时必须初始化赋值,那么如果我想在运行的时候才赋值怎么办?那么不用怕C#为我们提供了只读类型关键字为:readonly ,只读类型跟常量类似也是赋值后就不可以改变,但与常量不同的是它不是强制静态的,也就是只读类型是对象级别来访问的。
只读类型定义方式:[readonly 数据类型 变量名]
那么如何让他成为静态的? 很简单在前面我们已经介绍过静态的关键字static
静态只读类型定义方式:[static readonly 数据类型 变量名]
代码:
- using System;
- namespace MyProgram {
- class MyClass {
- public readonly int a = 10; //定义只读变量a public static readonly bool b = false; //定义静态只读变量b
- }
- class Program {
- static void Main(string[] args) {
- MyClass mc = new MyClass(); int a_ReadOnly_MC = mc.a; //只读变量是非静态的,由对象级别访问
- bool b_StaticReadOnly_MyClass = MyClass.b; //静态只读变量是类级别变量,有类名访问
- Console.WriteLine("a_ReadOnly_MC : {0}",a_ReadOnly_MC);
- Console.WriteLine("b_StaticReadOnly_MyClass :{1}", b_StaticReadOnly_MyClass);
- //任何对只读类型的修改都将引起编译错误 mc.a = 20;
- MyClass.b = true; }
- } }










