【发布时间】:2012-02-18 05:28:56
【问题描述】:
可能重复:
What is the static variable initialization order in C#?
为了好玩,我跑了this code
我没想到2 2 3。我期待一个编译器错误(circlur 依赖)或8 5 3。
C#中初始化顺序的规则是什么?
-edit-i tried making a not static 我得到了我的预期。为什么之前是 b 2 而现在是 5。我不认为我会喜欢这些规则...幸运的是我从来没有做过这样的事情,所以我没有遇到问题。
using System;
public class Test
{
public static void Main()
{
A.t();
}
}
class A
{
static int a = B.b + c;
public static int c = 3;
static public void t()
{
Console.WriteLine("{0} {1} {2}", a, B.b, c);
}
}
class B
{
public static int b = A.c+2;
}
【问题讨论】:
-
如果你觉得这很有趣:想象你有部分类,所以没有定义的文本顺序:stackoverflow.com/questions/7965830/…
标签: c#