static、const、readonly與static readonly的區別與聯繫

1、const修飾符

初始化時機:編譯時,即編譯程序時將值已經嵌入代碼中;

值狀態:不允許動態修改

修飾範圍:字段、局部變量

主要應用場景:主要應用於程序運行中不需要改變的變量的值,比如數學符號PI

2、static修飾符

初始化時機:運行時,可以聲明時賦值,也可以在構造函數,或使用時賦值

值狀態:允許修改

修飾範圍:類、字段、屬性、方法、運算符、事件、構造函數(不能用於索引器、析構函數或類以外的類型)

主要應用場景:主要作用於類的公共屬性

3、readonly修飾符

初始化時機:運行時,可以聲明時賦值或在類中的構造函數中賦值

值狀態:允許修改,但只能在構造函數中修改

修飾範圍:字段

主要應用場景:主要作用於實例化的對象的只讀屬性

4、static readonly修飾符

初始化時機:運行時,是兩個關鍵字的組合

值狀態:允許修改,聲明時賦值或者靜態構造函數中賦值

修飾範圍:字段

主要應用場景:第一,和const相比,它主要應用於引用性變量;而const,只能用於string類型的引用性變量;第二,類的只讀公共屬性


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章