【发布时间】:2014-10-25 18:31:52
【问题描述】:
由于某种原因,我未能找到这方面的文档。 看起来,在 C# 中,类的 const 字段在静态字段之前初始化,从这段代码可以看出:
class Program {
static int p = f;
const int f = 10;
static void Main(string[] args){
System.Console.WriteLine("{0}", p);
System.Console.ReadLine();
}
}
(这个输出10,而如果我用static替换const,它输出0)。
问题是: 这种行为是否总是如此? 还有,一般来说,不同种类的静态类字段的初始化顺序是什么?
【问题讨论】:
-
const 是编译时值。静态变量在运行时按照它们声明的顺序初始化...
标签: c# class static field constants