c# 常量和欄位

來源:互聯網
上載者:User

它的值是在編譯時間確定的。編譯器將常量儲存到程式集的中繼資料中,所有只能是編譯器認識的基元類型作為常量。

常量被看成類的一部分,是看出靜態成員。

代碼引用一個常量符號,會在定義常量的中繼資料中尋找該符號,提取之,並內嵌程式碼,產生的IL中是值本身。

在c#中使用的是const關鍵字。

欄位:已一種資料成員,可以容納任何的資料類型,不僅僅想常量一樣只能儲存基元類型。

CLR支援類型欄位和執行個體欄位

類型欄位:用於容納欄位資料的動態記憶體是在類型對象中分配的,

而類對象是在類型載入到一個AppDomain中建立的。

通常是在引用該類型的任何方法首次進行JIT編譯的時候。

執行個體欄位:用於容納欄位資料的動態記憶體是在構造類型的執行個體時分配的。

由於欄位儲存在動態記憶體中,所以它們的值在運行時才擷取,欄位解決了常量存在版本控制的問題。

CLR支援readonly 欄位 和 read/write欄位

read、write欄位可以在代碼中多次改變。

readonly欄位只能在構造器方法中寫入,也就是在對象首次建立的時候。

編譯器和驗證機制會確保readonly欄位不會在構造器以外的地方寫入。

在c#中允許內聯初始化文法來初始化類的欄位。c#實際是在構造器中對欄位進行初始化的,內聯代碼只是文法糖。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.