C#靜態變量使用心得淺析
C#靜態變量的使用,我們是如何的呢?下面就說一下具體的C#靜態變量使用心得,對于在定義常量的時候,到底是用const來定義還是readonly來定義。在此書中,提到了一個關于使用const會產生潛在的bug。
就是在程序中使用DLL類庫某個類的靜態常量時,如果在類庫中修改靜態常量的值,其它接口沒有發生變化,一般來說,程序調用端是不需要重新編譯,直接執行就可以調用新的類庫。不過就是在此情況下,會產生潛在的bug。這是由于靜態常量在編譯的時候,是用它的值去替換常量,因此在調用端的程序也是這樣進行替換的。
C#靜態變量的使用實例:
在類庫中定義了一個靜態常量,如下:
- public const int MAX_VALUE = 10;
那么對于程序中調用此靜態常量這段代碼,在編譯后產生的中間語言代碼中,是用10來進行替換,即使用靜態常量的地方,改為10了。
那么當類庫的靜態變量發生變化后,例如:
- public const int MAX_VALUE = 15;
C#靜態變量的使用的總結:
那么對于調用端程序是可以在沒有重新編譯的情況下進行運行,不過此時程序的中間語言代碼對應于C#靜態變量的值是10,而不是新類庫中的15。因此這樣產生的不一致,程序會引發潛在的bug。解決此類問題的方法,就是調用端程序在更新類庫之后重新編譯一下,即生成新的中間語言代碼。
C#靜態變量的一些使用的心得就向你介紹到這里,希望對你了解和學習C#靜態變量的使用有所幫助。
【編輯推薦】