4
A
回答
8
剛剛訪問類的第一次實例之前,每個AppDomain都會運行一次靜態構造函數。你可以用它來初始化靜態變量。
另一方面,每次創建類的新實例時都會運行默認構造函數。在默認構造函數中,您可以初始化實例的非靜態字段。
3
靜態構造函數只運行一次,無論該類型創建了多少個對象。默認的構造函數將爲該構造函數創建的每個實例運行。
0
崩潰黨所有人都離開後...
這兩個答案都是正確的,只是想添加此鏈接:Static Constructors (C# Programming Guide)。
引用它們:
靜態構造用於初始化任何靜態數據,或執行需要被一次僅執行的特定動作。它在創建第一個實例或引用任何靜態成員之前自動調用。
它們的性質:
- 靜態構造函數並不需要訪問修飾符或有參數。
- 自動調用靜態構造函數以在創建第一個實例或引用任何靜態成員之前初始化該類。
- 無法直接調用靜態構造函數。
- 用戶無法控制何時在程序中執行靜態構造函數。
- 靜態構造函數的典型用法是當類使用日誌文件並使用構造函數將條目寫入此文件時。
- 當構造函數可以調用LoadLibrary方法時,爲非託管代碼創建包裝類時,靜態構造函數也很有用。
- 如果靜態構造函數拋出異常,則運行時不會再次調用該類型,並且該類型在運行程序的應用程序域的生命週期中保持未初始化狀態。
您可以前往以上鍊接進行演示和示例代碼。
相關問題
- 1. 構造函數和靜態函數
- 2. 做默認構造函數初始化的靜態變量?
- 3. 繼承構造函數和默認構造函數
- 4. 構造函數和默認構造函數的區別
- 5. 默認和參數化構造函數
- 6. 類默認構造函數
- 7. 默認構造函數
- 8. 非默認構造函數
- 9. C++,默認構造函數
- 10. constexpr默認構造函數
- 11. 非默認構造函數
- 12. 公共構造函數和靜態構造函數
- 13. 默認構造函數C++頭和cpp
- 14. QGIS:QgsVectorLayer和QgsRasterLayer的默認構造函數?
- 15. C#類的構造函數的順序:參數化,默認和靜態?
- 16. Java - 靜態構造函數
- 17. C++默認構造函數和默認參數
- 18. 靜態導入和構造函數
- 19. 靜態構造函數和繼承
- 20. C++靜態庫和構造函數
- 21. Assembly.GetCallingAssembly()和靜態構造函數?
- 22. 靜態構造函數和BeforeFieldInit?
- 23. 靜態構造函數和單
- 24. Ninject和靜態構造函數方法
- 25. Objective C靜態構造函數與動態構造函數
- 26. 從參數化構造函數調用默認構造函數
- 27. 默認構造函數和析構函數是否內聯?
- 28. 混合默認和非默認的構造函數
- 29. 默認和默認構造函數有什麼區別
- 30. 是構造函數生成的默認構造函數嗎?