Adakah Susunan Permulaan Kelas Statik dalam C# Deterministik?
Turutan permulaan kelas statik dalam C# sememangnya deterministik. Menurut piawai ECMA-334:
Contoh Susunan Permulaan
Pertimbangkan kod berikut:
static class B { public static int X = 7; static B() { Console.WriteLine("B.X = " + X); X = A.X; Console.WriteLine("B.X = " + X); } } static class A { public static int X = B.X + 1; static A() { Console.WriteLine("A.X = " + X); } } static class Program { static void Main() { Console.WriteLine("A = {0}, B = {1}", A.X, B.X); } }
Perintah Pelaksanaan
Susunan semula Pertimbangan
Walaupun kelas A dan B disusun semula, susunan permulaan tetap sama kerana penggunaan pertama A.X mencetuskan rantaian permulaan.
Kesimpulan
Tertib permulaan kelas statik adalah deterministik dan mengikut peraturan yang digariskan dalam Piawaian ECMA-334. Penggunaan pertama ahli statik atau penciptaan tika akan mencetuskan proses pemula, yang diteruskan dalam susunan pemula medan diikuti oleh pembina statik.
Atas ialah kandungan terperinci Adakah Perintah Permulaan Kelas Statik C# Boleh Diramalkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!