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

C# 中const,readonly,static的使用小結(jié)

 更新時(shí)間:2021年01月25日 11:50:59   作者:一線碼農(nóng)  
這篇文章主要介紹了C# 中使用const,readonly,static的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下

平時(shí)在開發(fā)時(shí)經(jīng)常會用到 const,readonly,static 關(guān)鍵字,可以肯定這些關(guān)鍵詞是完全不同的概念,但有時(shí)候他們在用法上很相似以至于在場景中不知道選擇哪一個(gè),這篇文章我們就來討論 C# 中的 const,static 和 readonly 關(guān)鍵詞,放在一起比較一下看看如何選擇。

理解 const

const 常用來定義一個(gè)常量,什么意思呢?就是這個(gè)常量在你程序的生命周期內(nèi)都不會被改變,因此,必須在聲明常量時(shí)為其賦值,從技術(shù)角度上來說:這個(gè)常量值又被稱為 編譯時(shí) 值,用 const 定義的變量又被稱為 編譯時(shí) 常量,值得注意的是: 這個(gè)常量是不可變的,也就是一旦被定義好之后不可以對其進(jìn)行修改。

下面的代碼片段展示了如何使用 const 去定義這個(gè) 編譯時(shí) 常量。

const string connectionString = "Specify your database connection string here.";

一定要記住,常量必須在定義的時(shí)候給它賦值,同時(shí)也要記住不可以用 const 定義 object 類型,因?yàn)樗恢С?C# 的基元類型,比如:ints, floats, chars, booleans 和 strings,接下來通過一個(gè)例子來了解以下為啥不能用 object,考慮下面的 Author 類。

 public class Author
 {
  public int Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string Address { get; set; }
 }

如果用 const 將 Author 定義為常量的話,編譯器肯定是不同意的,如下圖:

理解 readonly

只讀關(guān)鍵詞 readonly 常用于將一個(gè)變量或者一個(gè)對象設(shè)置為只讀,意味著這個(gè)變量或者對象只能在 類作用域 或者 構(gòu)造函數(shù) 中被第一次賦值,一旦被賦值后,你就不能通過任何方法對其修改,除了構(gòu)造函數(shù),接下來看一個(gè)例子,考慮下面的 DbManager 類。

 public class DbManager
 {
  public readonly string connectionString ="Specify your database connection string here.";
  
  public DbManager()
  {
   connectionString = "You can reassign a value here.";
  }
  
  public void ReAssign()
  {
   connectionString = "This is not allowed";
  }
 }

上面的代碼會編譯報(bào)錯(cuò),錯(cuò)誤信息如下:

理解 static

static 關(guān)鍵詞可用于 變量,方法,對象。不過值得注意的是: 類中的 static 成員只歸屬于類,而不是類實(shí)例,換句話說,可以直接使用類名來訪問靜態(tài)屬性或者靜態(tài)方法,而不是通過類實(shí)例訪問,接下來考慮一下 Utility 類。

 public class Utility
 {
  public static void SomeMethod()
  {
   //Write your code here
  }
 }

你不可以通過 類實(shí)例 去調(diào)用,否則編譯器是不會放行的,如下圖:

正確的做法如下:

Utility.SomeMethod();

同樣的規(guī)則也適用于 類中的屬性和字段,要想引用類中的靜態(tài)成員,參考如下語法:

ClassName.Member;

或者

ClassName.Member();

構(gòu)造函數(shù)也可以是靜態(tài)的,它通常用于初始化類中的靜態(tài)成員,但要注意靜態(tài)構(gòu)造函數(shù)中不接受任何參數(shù)。

總結(jié)

使用 const,readonly,static 的一些經(jīng)驗(yàn)法則如下:

const

如果變量在應(yīng)用程序的生命周期內(nèi)不會被改變,請用 const。

readonly

如果你不確定這個(gè)變量后期是否要被修改,但又不希望其他的類碰它,請用 readonly。

static

如果你希望類成員是屬于類型而不是類型的實(shí)例,請用 static。

譯文鏈接:https://www.infoworld.com/art...

以上就是C# 中使用const,readonly,static的示例的詳細(xì)內(nèi)容,更多關(guān)于C# 中使用const,readonly,static的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#對文件/文件夾操作代碼匯總

    C#對文件/文件夾操作代碼匯總

    有關(guān)文件的操作的內(nèi)容非常多,不過幾乎都是從下面的這些基礎(chǔ)方法中演化出來的。比如對內(nèi)容的修改,不外乎就是加上點(diǎn)字符串操作或者流操作。還有其它一些特別的內(nèi)容,等在開發(fā)項(xiàng)目中具體遇到后再添加。
    2015-04-04
  • C#實(shí)現(xiàn)循環(huán)發(fā)送電腦屏幕截圖

    C#實(shí)現(xiàn)循環(huán)發(fā)送電腦屏幕截圖

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)循環(huán)發(fā)送電腦屏幕截圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)

    C#實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • c#中禁用windows的任務(wù)管理器的方法

    c#中禁用windows的任務(wù)管理器的方法

    這篇文章主要介紹了c#中禁用windows的任務(wù)管理器的方法,通過注冊表實(shí)現(xiàn)禁用,需要的朋友可以參考下
    2014-06-06
  • C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法

    C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法

    這篇文章主要介紹了C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法,較為詳細(xì)的分析了C#統(tǒng)計(jì)文本文件的原理與相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#8 的模式匹配實(shí)現(xiàn)

    C#8 的模式匹配實(shí)現(xiàn)

    這篇文章主要介紹了C#8 的模式匹配實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#抓取網(wǎng)頁數(shù)據(jù) 解析標(biāo)題描述圖片等信息 去除HTML標(biāo)簽

    C#抓取網(wǎng)頁數(shù)據(jù) 解析標(biāo)題描述圖片等信息 去除HTML標(biāo)簽

    本文主要一步一步介紹利用C#抓取頁面數(shù)據(jù)的過程,抓取HTML,獲取標(biāo)題、描述、圖片等信息,并去除HTML,希望對大家有所幫助。
    2016-04-04
  • C#?窗口過程消息處理?WndProc的方法詳解

    C#?窗口過程消息處理?WndProc的方法詳解

    在WinForm中一般采用重寫WndProc的方法對窗口或控件接受到的指定消息進(jìn)行處理,本文給大家介紹C#窗口過程消息處理WndProc的方法詳解,感興趣的朋友一起看看吧
    2025-04-04
  • C#打印Word文檔的4種方法

    C#打印Word文檔的4種方法

    Word文檔是日常辦公和學(xué)習(xí)中不可或缺的一部分,這篇文章將提供以下4種通過C# 打印Word文檔的方法,以適應(yīng)不同的場景需求,需要的小伙伴可以了解下
    2025-02-02
  • C# 泛型接口的抗變和協(xié)變

    C# 泛型接口的抗變和協(xié)變

    本篇文章主要介紹了C#中泛型接口的抗變和協(xié)變的相關(guān)知識。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03

最新評論

汉寿县| 邯郸县| 蛟河市| 南昌县| 马龙县| 江西省| 贺州市| 楚雄市| 酒泉市| 搜索| 宁安市| 团风县| 保德县| 溆浦县| 阿合奇县| 岐山县| 澜沧| 文昌市| 成安县| 英德市| 邯郸县| 峨边| 元朗区| 双柏县| 黔西县| 南溪县| 博罗县| 津南区| 西畴县| 天峨县| 南城县| 晴隆县| 濮阳市| 平顺县| 莎车县| 赫章县| 始兴县| 莆田市| 抚松县| 柞水县| 新蔡县|