隨筆分類 C 6 新增特性

2021-09-07 08:31:50 字數 1744 閱讀 4420

c#6.0中引入的基本特性總結

[c#6] 7-索引初始化器

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 早c#3中引入的集合初始化器,可是讓我們用上面的語法來在宣告乙個字典或者集合的時候立即初始化一些項進去,其實在c#3中這是個語法糖,實質編譯後的結果是呼叫字典或者集合的add方法逐一新增這些項。但是有一點小小的不直觀。先看看這個版的il吧: 本質

閱讀全文

posted @

[c#6] 6-表示式形式的成員函式

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 通常情況下,有些簡單的唯讀屬性和方法只有一行**,但是我們也不得不按照繁瑣的語法去實現它。c#6帶了了一種和lambda語法高度一致的精簡語法來幫助我們簡化這些語法。先看看老版本的il**(這裡我就不展開il了,看下結構即可,都是普通的屬性和方法

閱讀全文

posted @

[c#6] 5-自動屬性增強

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本** 通常情況下,c#的屬性可以很好的幫助我們完成工作,比如上面的**。在為屬性賦值的時候,我們可以在任意地方為其賦值。但是並沒有一種像是字段一樣的宣告且立即初始化的語法來簡化預設值的設定。c#6為我們帶來了這種新的語法,像是為字段賦值一樣為屬性賦值。

posted @

[c#6] 4-string 插值

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 通常我們在格式化字串的時候會使用string的靜態方法format來進行字串拼接,然後使用...來充當佔位符。如果過大,**的可讀性就會急劇下降,c#6引入乙個新語法來簡化這種書寫方式。 2. $"" 我們之間來

閱讀全文

posted @

[c#6] 3-null 條件運算子

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 在我們使用乙個物件的屬性的時候,有時候第一步需要做的事情是先判斷這個物件本身是不是bull,不然的話你可能會得到乙個 system.nullreferenceexception 的異常。雖然有時候我們可以使用三元運算子 string name =

閱讀全文

posted @

[c#6] 2-nameof 運算子

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 這段**並沒什麼問題,執行良好。隨著時間的推移,有一天,我覺得args這個引數名不合適,想改乙個更直觀的名字filepaths,表示我要接受乙個檔案路徑的陣列。然後我們就直接把args這個名字給重構了,but,把 throw new argume

閱讀全文

posted @

[c#6] 1-using static

摘要: 0. 目錄 c#6 新增特性目錄 1. 老版本的** 上面這段**大家再熟悉不過了,使用靜態類console的靜態方法writeline輸出一行字串。插播點關於clr的相關知識,clr在執行il的期間時候是麼有命名空間的概念的,它所知道的僅僅是成員的完全限定名(c#1 型別基礎)。也就是在呼叫co

閱讀全文

posted @

[c#6] 0-概覽

摘要: 1. c#6 新特性圖譜 c#6的新特性主要由編譯器(「roslyn」)帶來,並不依賴clr和.net framework的公升級,我們可以認為這個版本的新語言特性的主要目的為了簡化**書寫方式,讓我們以一種更直觀高效的方式去程式設計,本質上是一些語法糖。主要特性如上圖所示,針對每個特性詳細介紹如下: 2

閱讀全文

posted @

C 6 的新特性

首先,mads 說,c 6 不會改版 c 的設計哲學,並且將提供很多小得特性,來幫助整潔 c 6 允許定義不變的自動化屬性,例如,只支援乙個 getter 方法的自動化屬性 class pointpublic int ypublic int readwrite getter only 自動化屬性是唯...

C6 定向越野

為了鍛鍊身體,某楠參加了乙個定向越野比賽,定向越野是利用地圖和指北針導航的一項競技運動,通常由起點出發,在多個點標處打卡,再返回終點。但是非酋某楠的指北針居然是壞的,所以只能靠記住來時的方向和各個點的座標來判斷下一步。現在希望你能夠幫忙判斷下一步是左轉還是右轉。對於每次轉彎輸出乙個字元,左轉輸出 l...

C 6和 VB 12的最新特性列表

隨著下個版本的c 發布日逐漸臨近,那些還沒有完成的特性必須被砍掉。最近從特性列表中被砍掉的特性包括主要建構函式 primary constructor 和宣告表示式 declaration expression mads torgersen寫道 u0026 xd n u0026 xd n u0026...