C#での静的変数宣言の順序に問題があります
このコードを実行すると:
static class Program {
private static int v1 = 15;
private static int v2 = v1;
static void Main(string[] args) {
Console.WriteLine("v2 = "+v2);
}
}
出力は次のとおりです。
v2=15
しかし、静的変数の宣言順序を次のように変更すると、次のようになります。
static class Program {
private static int v2 = v1;
private static int v1 = 15;
static void Main(string[] args) {
Console.WriteLine("v2 = "+v2);
}
}
出力は次のとおりです。
v2 = 0
なぜこれが起こったのですか?