const 和 readonly關鍵字聲明的變量的區別

const 和 readonly關鍵字聲明的變量(常量變量和只讀變量)的區別
 
1.按可聲明的變量類型:const只能聲明簡單類型和string類型的變量,如:int,string,double。
                      而readonly則可以聲明任意類型。

2.按賦值方式:const只能在聲明變量時賦值,在聲明時也必須要賦值
              readonly可以在聲明或構造函數中賦值(包括同時),
 
3.按成員的身份:const聲明的變量是靜態的,歸類所有,且不能在其他地方改變其值了。eadonly聲明的變量可以是靜態(不追隨實例)的也可以是動態(追隨實例)的,關鍵是看前面有沒有static,有則是靜態的,否則是動態的。
 
4.按做組件時主程序對它們的調用方式(這一條是很高級的主題了,我還不知道這種區別的好處):const聲明的變量在主程序編譯時就調用,而static readonly聲明的變量在主程序運行時才調用(const聲明的變量和readonly聲明的變量在這方面沒有可比性,因爲一個是靜態
的,一個是動態的)。

 
這次在做項目時,準備使用一個常量成員變量(const變量)表示軟件試用的最大次數,結果在調用是發現不能調用。現在知道什麼原因了,原來const聲明的是靜態的變量,在實例方法中是不能調用的。
 
我想在實際項目中readonly關鍵字要使用的多些,要方便些。因爲它聲明的變量可以在實例函數中調用。
 
如果上面的每一條我都舉實例來驗證,是非常花時間的,只好作罷。如果能在項目中給你一些幫助,我會感到很欣慰的。
 
歡迎交流指教。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章