
Tertib Penentuan Permulaan Kelas Statik dalam C#
Turutan permulaan kelas statik dalam C# dijelaskan oleh spesifikasi ECMA. Tertib ini memastikan ketekalan dalam tingkah laku program.
Menurut ECMA-334:
- Apabila pemula medan statik wujud, ia dilaksanakan serta-merta sebelum pembina statik yang sepadan.
- Jika tiada pembina statik, pemula dilaksanakan pada masa yang bergantung kepada pelaksanaan sebelum menggunakan sebarang medan statik daripada kelas.
- Pelaksanaan pembina statik tercetus apabila sama ada tika kelas dicipta atau mana-mana ahli statik dirujuk.
- Dalam kelas dengan kaedah Utama, pembina statik dilaksanakan sebelum memasuki kaedah Utama.
Dalam kod yang diberikan sampel:
- Merujuk A.X dalam Utama mencetuskan permulaan A.X.
- A.X permulaan memerlukan B.X, jadi ia memulakan B.X permulaan.
- B.X diberikan nilai lalai sebanyak 7. Output: "B.X = 7."
- Statik B() dipanggil, mengeluarkan "B.X = 0."
- A.X dimulakan sebagai B.X 1, menghasilkan A.X = 1.
- Statik A() dipanggil, mengeluarkan "A.X = 1 ."
- Akhir sekali, cetakan Utama "A = 1, B = 0."
Standard tidak menggalakkan pemerhatian medan statik dengan pemula berubah dalam keadaan lalainya untuk mengekalkan konsistensi.
Atas ialah kandungan terperinci Bagaimanakah C# Menjamin Perintah Deterministik untuk Permulaan Kelas Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn