class Test
{
//声明的时候并赋值
private readonly int age = 10;
private readonly static int num1 = 0;
private readonly int num2 = 0;
private static int num3 = 0;
//静态只读字段只能在静态构造方法中赋值
static Test()
{
num1 = 222;
}
//非静态字段只能在非静态构造方法中赋值
public Test()
{
//使用readonly修饰的常量可以在构造方法中修改多次
age = 100;
age = 200;
//静态字段可以在非静态构造方法中赋值
num3 = 33333;
//静态只读字段无法在非静态构造方法中赋值
//num1 = 11111;
}
public void Print()
{
//在非构造方法中无法对readonly修饰的常量赋值
//age = 300;
Console.WriteLine(age);
}
}
static void Main(string[] args)
{
const int age = 10;
const double PI = 3.14;
Console.WriteLine(age);
Console.WriteLine(PI);
Test t = new Test();
t.Print();
}