最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中 const 和 readonly 的不同

 更新時(shí)間:2013年04月24日 15:29:55   作者:  
const 和 readonly 的區(qū)別,總是不太清楚,于是查了查資料。

  const 的概念就是一個(gè)包含不能修改的值的變量。
常數(shù)表達(dá)式是在編譯時(shí)可被完全計(jì)算的表達(dá)式。因此不能從一個(gè)變量中提取的值來(lái)初始化常量。
如果 const int a = b+1;b是一個(gè)變量,顯然不能再編譯時(shí)就計(jì)算出結(jié)果,所以常量是不可以用變量來(lái)初始化的。


readonly 允許把一個(gè)字段設(shè)置成常量,但可以執(zhí)行一些運(yùn)算,可以確定它的初始值。
因?yàn)?readonly 是在計(jì)算時(shí)執(zhí)行的,當(dāng)然它可以用某些變量初始化。
readonly 是實(shí)例成員,所以不同的實(shí)例可以有不同的常量值,這使readonly更靈活。


readonly 關(guān)鍵字與 const 關(guān)鍵字不同。

1. const 字段只能在該字段的聲明中初始化。
   readonly 字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。
2. const 字段是編譯時(shí)常數(shù),而 readonly 字段可用于運(yùn)行時(shí)常數(shù)。
3. const 默認(rèn)就是靜態(tài)的,而 readonly 如果設(shè)置成靜態(tài)的就必須顯示聲明。
4.const 對(duì)于引用類(lèi)型的常數(shù),可能的值只能是 string 和 null。
   readonly可以是任何類(lèi)型

* 需要注意的一個(gè)問(wèn)題是:

對(duì)于一個(gè) readonly 的 Reference 類(lèi)型,只是被限定不能進(jìn)行賦值(寫(xiě))操作而已。而對(duì)其成員的讀寫(xiě)仍然是不受限制的。

復(fù)制代碼 代碼如下:

public static readonly Class1 my = new Class1();

my.SomeProperty = 10;//正常
my = new Class1(); //出錯(cuò),該對(duì)象是只讀的

但是,如果上例中的 Class1 不是一個(gè) Class 而是一個(gè) struct,那么后面的兩個(gè)語(yǔ)句就都會(huì)出錯(cuò)。

static readonly:

Java 中 static 是當(dāng)載入一個(gè)類(lèi)時(shí)執(zhí)行一次的。

C#中是怎么執(zhí)行的,我沒(méi)有查到。很奇怪幾乎每本java的書(shū)都會(huì)說(shuō)static的問(wèn)題,C#的往往只說(shuō)怎么用,但是應(yīng)該是在main函數(shù)調(diào)用之前初始化,所以static readonly也是運(yùn)行時(shí)的,可以用變量付值,如:

private static readonly string path = System.Windows.Forms.Application.StartupPath + “aaa”;

相關(guān)文章

  • 基于C#實(shí)現(xiàn)的高性能實(shí)時(shí)MP4錄屏方案

    基于C#實(shí)現(xiàn)的高性能實(shí)時(shí)MP4錄屏方案

    這篇文章主要介紹了基于C#實(shí)現(xiàn)的高性能實(shí)時(shí)MP4錄屏方案,文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2026-02-02
  • 淺析C#封裝GRPC類(lèi)庫(kù)及調(diào)用簡(jiǎn)單實(shí)例

    淺析C#封裝GRPC類(lèi)庫(kù)及調(diào)用簡(jiǎn)單實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C#中封裝GRPC類(lèi)庫(kù)及調(diào)用簡(jiǎn)單實(shí)例的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • c#二進(jìn)制逆序方法詳解

    c#二進(jìn)制逆序方法詳解

    這篇文章介紹了c#二進(jìn)制逆序方法,有需要的朋友可以參考一下
    2013-10-10
  • C#使用Spire.PDF從PDF中提取文本的實(shí)戰(zhàn)指南

    C#使用Spire.PDF從PDF中提取文本的實(shí)戰(zhàn)指南

    在處理PDF文檔時(shí),經(jīng)常需要從中提取文本內(nèi)容用于數(shù)據(jù)分析或搜索入庫(kù)。使用Spire.PDF for .NET,只需幾行C#代碼即可精準(zhǔn)提取PDF中的文本,支持保留格式和批量處理,輕松解決文本提取需求。
    2025-09-09
  • Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能

    Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)毫秒延時(shí)回調(diào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解C#如何控制多線(xiàn)程同步執(zhí)行

    詳解C#如何控制多線(xiàn)程同步執(zhí)行

    使用Task類(lèi)來(lái)控制多線(xiàn)程的同步執(zhí)行,可應(yīng)用于多任務(wù)分發(fā)執(zhí)行后,這篇文章主要為大家詳細(xì)介紹了C#如何通過(guò)Task類(lèi)控制多線(xiàn)程同步執(zhí)行,感興趣的小伙伴可以了解下
    2023-12-12
  • C#利用WebClient實(shí)現(xiàn)兩種方式下載文件

    C#利用WebClient實(shí)現(xiàn)兩種方式下載文件

    本篇文章主要介紹了C#利用WebClient 兩種方式下載文件,詳細(xì)的介紹了兩種方式,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-02-02
  • 詳解WPF如何使用必應(yīng)地圖控件

    詳解WPF如何使用必應(yīng)地圖控件

    這篇文章主要為大家詳細(xì)介紹了WPF如何使用必應(yīng)地圖控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-11-11
  • 通過(guò)C#實(shí)現(xiàn)發(fā)送自定義的html格式郵件

    通過(guò)C#實(shí)現(xiàn)發(fā)送自定義的html格式郵件

    本篇文章主要介紹了通過(guò)C#實(shí)現(xiàn)發(fā)送自定義的html格式郵件,詳細(xì)的介紹了發(fā)送HTML格式郵件的方法,有興趣的可以了解一下。
    2017-02-02
  • 使用C#設(shè)置Word文檔背景顏色或背景圖片

    使用C#設(shè)置Word文檔背景顏色或背景圖片

    在 .NET 開(kāi)發(fā)場(chǎng)景中,對(duì) Word 文檔進(jìn)行自動(dòng)化格式處理是常見(jiàn)需求,其中設(shè)置文檔背景提升文檔視覺(jué)呈現(xiàn)的基礎(chǔ)操作,本文將介紹如何通過(guò)該組件在 C# 中為 Word 文檔設(shè)置背景顏色或背景圖片,需要的朋友可以參考下
    2026-02-02

最新評(píng)論

昭苏县| 吴川市| 扎兰屯市| 天水市| 蒲江县| 太仓市| 乐亭县| 鲁山县| 方城县| 永善县| 五寨县| 怀仁县| 集安市| 孟连| 隆回县| 高青县| 江陵县| 广水市| 宁强县| 景宁| 马龙县| 靖边县| 达州市| 闽清县| 集贤县| 奇台县| 盐源县| 通化市| 右玉县| 宜黄县| 遂昌县| 庆阳市| 富阳市| 威远县| 青阳县| 柳河县| 老河口市| 克山县| 资源县| 江川县| 凉山|