-1
A
回答
1
https://msdn.microsoft.com/en-us/library/79b3xss3.aspx
如同所有類類型的情況下,用於一個靜態類的類型信息被加載時,引用該類別的節目的.NET Framework公共語言運行庫(CLR)加載。該程序無法準確指定該類何時加載。但是,在程序中第一次引用類之前,它會保證被加載並且其字段已初始化並調用其靜態構造函數。靜態構造函數只被調用一次,並且靜態類在您的程序所在的應用程序域的生命週期中保留在內存中。
2
當一個人使用一個靜態類或方法,什麼時候C#爲他們分配內存?
不是C#分配內存的人,而是底層的CLR。您還應該區分分配的內存和實際初始化的成員。
分配當程序(EXE,DLL)加載到內存時可能發生內存。這是因爲在「典型」實現中,靜態數據存儲器分配在所謂的data
分段上。這是專用於保持永久(從運行時角度看)數據結構的固定部分。但是,具體的實現可能會有點不同,儘管必須是某種靜態的段,至少要保持指向其他數據結構的指針。
初始化發生在類首次被訪問之前。
它是否會被取消分配?
不,它們是靜態的。
獎金的問題:當一個人應該使用一個靜態成員或類?
附註:這不是一個獎勵問題,而是一個以主要基於意見爲基礎的問題的理由。
+0
謝謝你Ondrej!幫了我很多。 –
相關問題
- 1. C++靜態成員
- 2. java靜態成員內存泄漏
- 3. C++(非內置/類)靜態成員
- 4. 共享成員靜態或動態內存分配C++
- 5. C++類的靜態成員
- 6. C++類的靜態成員
- 7. 內存中的靜態成員和靜態全局變量
- 8. 如何以及何時處置c#靜態成員?
- 9. C#:靜態成員VS實例成員
- 10. 訪問靜態成員靜態成員
- 11. C++ - 如何初始化成員函數內的靜態變量?
- 12. 靜態constexpr成員存儲
- 13. C++:靜態成員變量
- 14. C++靜態成員變量
- 15. C++:複製靜態成員?
- 16. c#如何處理內存
- 17. 爲類的指針數據成員處理動態內存?
- 18. C++內存管理:成員變量是如何存儲的?
- 19. 類中的靜態函數,將如何處理內存?
- 20. 靜態成員
- 21. 處理靜態內容(CSS)
- 22. Java的靜態成員和C++的靜態成員之間的區別
- 23. C#靜態類 - 靜態類不能有非靜態成員
- 24. 處理靜態對象c#
- 25. 在C#中,如何動態獲取靜態類的成員?
- 26. 表格內的靜態成員
- 27. '靜態'的C++類成員函數?
- 28. C++ dllimport的靜態數據成員
- 29. class C++中的靜態成員undefined reference
- 30. C++類的靜態成員初始化
關於該類的第一次使用。它不會被釋放。 –
關於獎金問題:在需要時使用靜態成員或類。 –
它很可能在編譯時分配內存。但這實際上是一個實現細節,而不是您需要擔心的事情。你想解決什麼問題?爲什麼這很重要? –