const 只能在初始化时候赋值,且值不能再次修改
public const PI=3.14;
static 值可以自由修改,初始化的时机包括:声明时赋值、使用中、构造函数中
public class Demo { public static int One = -1; // 声明时 static Demo() { One = 2; // 静态构造函数中 } public Demo() { One = 3; // 普通构造函数中 } public int Sum() { return One++; // 方法中 } }
readonly 值可以修改(仅限于普通构造函数中),初始化的时机包括: 声明时赋值、普通构造函数中
public class Demo { public readonly string Name = "Libai"; // 声明时 public Demo() { Name = "Dufu"; // 普通构造函数中 } }
static readonly 值可以修改(仅限于静态构造函数中),初始化的时机包括: 声明时赋值、静态构造函数中
public class Demo { public static readonly string Brand = "Apple"; // 声明时 static Demo() { Brand = "Xiaomi"; // 静态构造函数中 } }