第六章類(十八)readonly與const

2022-03-10 04:48:05 字數 881 閱讀 2380

常量應是恆定不變,如果修改它,在使用它的程式集中不一定能反映出最新改變。

如乙個程式集引用了另乙個程式集中的常量,常量值將直接編譯到引用程式集中。所以,如果被引用程式集中的值發生改變,而引用程式集沒有重新編譯,那麼引用程式集將繼續使用原始值而非新值。

將來可能改變的值應指定為readonly。

readonly英文譯義是唯讀的,同樣它也是字段的修飾符。

這是之前上篇的例子,正如您可以看到的il**的const欄位numberofdays的值(7)直接嵌入il**。

其中,readonly欄位pivalue顯示為pivalue。該值可在執行時獲得。

然後一開始描述的那段文字,用**解釋。

類(a)  

public

class

readonlyconstant

public readonlyconstant(int

x)

public

normalmethod()

}

類庫a在另乙個專案(b)中使用它作為參考。現在看一下生成的專案b的il**

在專案b的**中,在il**中嵌入的常量欄位數的值。現在的問題是,在源中(a類庫的readonlyconstant.cs),常量字段 (numberofdays )值改為5,並編譯並生成乙個新的dll。

但是,除非我們編譯這個專案,否則這個常量欄位的新值不會影響b專案。編譯後,新的常量字段值將嵌入到專案b的il**中。  

當值是絕對不變的時候,使用常量,這在時間上是不變的。例如一周的天數是7。這始終是常數。

由於在il內嵌有不變的值,我們可以使用常量修飾符來獲得效能上的好處。

如果我們想要對類(或物件)的不同例項使用不同的常量值,請使用readonly。

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

java第六章類與物件

類修飾符的含義 public 將乙個類宣告為公共類,它可以被任何物件訪問,乙個程式的主類必須為公共類 abstract 將乙個類宣告為抽象類,沒有實現的方法,需要子類提供方法的實現.final 將乙個類宣告為最終類即非繼承類,表示它不能被其他類所繼承 friendly 友元型別,預設的修飾符,只有在...

《第六章 復用類》 總結

關於涉及繼承的匯出類的初始化順序 1.先載入基類 如果有基類的基類,則先載基類的基類 從外往內 2.靜態變數初始化 先基類再匯出類 從外往內 3.各個基類和匯出類靜態初始化完後,執行匯出類的main方法 main中語句順序執行 4.如果在main中有顯式建立匯出類的物件,則將在匯出類構造器呼叫之前先...