C# const 与 readonly

原文: C# 常量

   timeflies

1.静态常量(编译时常量)const

在编译时就确定了值,必须在声明时就进行初始化且之后不能进行更改,可在类和方法中定义。定义方法如下:

const double a=3.14;// 正确声明常量的方法
const int b;         // 错误,没有初始化

2.动态常量(运行时常量)readonly

在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。定义方法如下:

class Program
{
    readonly int a=1;  // 声明时初始化
    readonly int b;    // 构造函数中初始化
    Program()
    {
        b=2;
    }
    static void Main()
    {
    }
}
更多解析

  Joe

在下面两种情况下:

  • a、取值永久不变(比如圆周率、一天包含的小时数、地球的半径等)。
  • b、对程序性能要求非常苛刻。

可以使用 const 常量,除此之外的其他情况都应该优先采用 readonly 常量。