下記ソースの出力が A.call1 => False
であることから、静的フィールドの初期化タイミングはフィールドの種別やクラスの依存関係によって優先度が異なることが分かります。
CSharp
1class A { 2 public static bool call3 = B.call4; 3 public static bool call1 = B.call2; 4} 5 6 class B { 7 public static bool call4 = C.call5; 8 public static bool call2 = A.call3; 9} 10 11class C { 12 public static bool call5 = true; 13} 14 15class Program { 16 static void Main(string[] args) { 17 18 Console.WriteLine("A.call1 => " + A.call1); // False 19 Console.ReadLine(); 20 } 21}
MSDNではこれらのスコアリングルールについて一切言及していません。
フィールドの初期化優先度はどのように決定しますか?
検証環境
.NET 5.0
Visual Studio 2019 Community
Windows 10
回答2件
あなたの回答
tips
プレビュー