『C#』語言版本歷史

本文最后更新于 2019年 4月 20號(hào) 上午12點(diǎn) 52分,并同步發(fā)布于 :


圖片來自網(wǎng)絡(luò)

各個(gè) C# 版本的主要特性箫攀、發(fā)布日期和發(fā)布方式

C# 8.0

待發(fā)布

  • Default Interface Methods: 缺省接口實(shí)現(xiàn)

  • More patterns in more places: 在更多位置中使用更多模式

    • 模式匹配增強(qiáng)功能:
      • Switch 表達(dá)式
      • 屬性模式
      • 元組模式
      • 位置模式
  • using declarations: using 聲明

  • Static local functions: 靜態(tài)本地函數(shù)

  • Disposable ref structs:可處置的 ref 結(jié)構(gòu)

  • Nullable reference types: 可為空引用類型

  • Asynchronous streams: 異步流

  • Indices and ranges: 索引和范圍

C# 7.3

2018 年 5 月隨 Visual Studio 2017 v15.7 發(fā)布

  • Enabling more efficient safe code : 啟用更高效的安全代碼
    • 索引 fixed 字段不需要進(jìn)行固定
    • 可以重新賦值的ref局部變量
    • stackalloc 數(shù)組支持初始值設(shè)定項(xiàng)
    • 更多類型支持 fixed 語句
    • 增強(qiáng)的泛型約束(支持EnumDelegate約束)
  • Make existing features: 提升了現(xiàn)有功能
    • 元組支持==!=
    • in 方法重載解析決勝屬性
    • 擴(kuò)展out 語法
  • New compiler options: 新的編譯器選項(xiàng)(-publicsign-pathmap)

C# 7.2

2017 年 11 月隨 Visual Studio 2017 v15.5 發(fā)布

  • Safe efficient code enhancements: 安全高效的代碼的增強(qiáng)功能
    • 針對(duì)實(shí)參的 in 修飾符庄蹋,指定形參通過引用傳遞壶愤,但不通過調(diào)用方法修改歇父。 將 in 修飾符添加到參數(shù)是源兼容的更改派草。
    • 針對(duì)方法返回的 ref readonly 修飾符舱馅,指示方法通過引用返回其值,但不允許寫入該對(duì)象烧颖。 如果向某個(gè)值賦予返回值弱左,則添加 ref readonly 修飾符是源兼容的更改。 將 readonly 修飾符添加到現(xiàn)有的 ref 返回語句是不兼容的更改炕淮。 它要求調(diào)用方更新 ref 本地變量的聲明以包含 readonly 修飾符科贬。
    • readonly struct 聲明,指示結(jié)構(gòu)不可變鳖悠,且應(yīng)作為 in 參數(shù)傳遞到其成員方法榜掌。 將 readonly 修飾符添加到現(xiàn)有的結(jié)構(gòu)聲明是二進(jìn)制兼容的更改。
    • ref struct 聲明乘综,指示結(jié)構(gòu)類型直接訪問托管的內(nèi)存憎账,且必須始終分配有堆棧。 將 ref 修飾符添加到現(xiàn)有 struct 聲明是不兼容的更改卡辰。 ref struct 不能是類的成員胞皱,也不能用于可能在堆上分配的其他位置。
  • Non-trailing named arguments: 非尾隨命名參數(shù)
  • Leading underscores in numeric literals: 數(shù)值文字中的前導(dǎo)下劃線
  • private protected access modifier: private protected 訪問修飾符
  • Conditional ref expressions: 條件 ref 表達(dá)式

C# 7.1

2017 年 8 月隨 Visual Studio 2017 v15.3 發(fā)布

  • Async main:異步Main方法

  • Default expressions:default 表達(dá)式

  • Reference assemblies:引用程序集生成

  • Inferred tuple element names:推斷元組元素名稱

  • Pattern-matching with generics:

C# 7.0

2017 年 3 月隨 Visual Studio 2017 和 .NET Framework 4.7 發(fā)布

  • Out variables:out變量直接聲明九妈,例如可以out in parameter

  • Pattern matching:模式匹配

  • Tuples:元組

  • Deconstruction:元組解析

  • Discards:沒有命名的變量反砌,只是占位,后面代碼不需要使用其值

  • Local Functions:本地函數(shù)

  • Binary Literals:二進(jìn)制字面量

  • Digit Separators:數(shù)字分隔符

  • Ref returns and locals:引用返回值和局部變量

  • Generalized async return types:async中使用泛型返回類型

  • More expression-bodied members:允許構(gòu)造器萌朱、解析器宴树、屬性可以使用表達(dá)式作為body

  • Throw expressions:Throw可以在表達(dá)式中使用

C# 6.0

2015 年 7 月隨 Visual Studio 2015 和 .NET Framework 4.6 發(fā)布

  • Compiler-as-a-service (Roslyn)

  • Import of static type members into namespace:支持僅導(dǎo)入類中的靜態(tài)成員

  • Exception filters:異常過濾器

  • Await in catch/finally blocks:支持在catch/finally語句塊使用await語句

  • Auto property initializers:自動(dòng)屬性初始化

  • Default values for getter-only properties:設(shè)置只讀屬性的默認(rèn)值

  • Expression-bodied members:支持以表達(dá)式為主體的成員方法和只讀屬性

  • Null propagator (null-conditional operator, succinct null checking):Null條件操作符

  • String interpolation:字符串插值,產(chǎn)生特定格式字符串的新方法

  • nameof operator:nameof操作符晶疼,返回方法酒贬、屬性、變量的名稱

  • Dictionary initializer:字典初始化

C# 5.0

2012 年 8 月隨 Visual Studio 2012 和 .NET Framework 4.5 發(fā)布

  • Asynchronous methods:異步方法

  • Caller info attributes:調(diào)用方信息特性翠霍,調(diào)用時(shí)訪問調(diào)用者的信息

C# 4.0

2010 年 4 月隨 Visual Studio 2010 和 .NET Framework 4.0 發(fā)布

  • Dynamic binding:動(dòng)態(tài)綁定

  • Named and optional arguments:命名參數(shù)和可選參數(shù)

  • Generic co- and contravariance:泛型的協(xié)變和逆變

  • Embedded interop types (“NoPIA”):開啟嵌入類型信息锭吨,增加引用COM組件程序的中立性

C# 3.0

2007 年 11 月隨 Visual Studio 2008 和 .NET Framework 3.5 發(fā)布

  • Implicitly typed local variables:隱式類型本地變量

  • Object and collection initializers:對(duì)象和集合初始化器

  • Auto-Implemented properties:自動(dòng)屬性,自動(dòng)生成屬性方法寒匙,聲明更簡潔

  • Anonymous types:匿名類型

  • Extension methods:擴(kuò)展方法

  • Query expressions:查詢表達(dá)式

  • Lambda expression:Lambda表達(dá)式

  • Expression trees:表達(dá)式樹零如,以樹形數(shù)據(jù)結(jié)構(gòu)表示代碼,是一種新數(shù)據(jù)類型

  • Partial methods:部分方法

C# 2.0

2005 年 11 月隨 Visual Studio 2005 和 .NET Framework 3.0 發(fā)布

  • Generics:泛型

  • Partial types:分部類型锄弱,可以將類考蕾、結(jié)構(gòu)、接口等類型定義拆分到多個(gè)文件中

  • Anonymous methods:匿名方法

  • Iterators:迭代器

  • Nullable types:可以為Null的類型棵癣,該類可以是其它值或者null

  • Getter/setter separate accessibility:屬性訪問控制

  • Method group conversions (delegates):方法組轉(zhuǎn)換辕翰,可以將聲明委托代表一組方法,隱式調(diào)用

  • Co- and Contra-variance for delegates and interfaces:委托狈谊、接口的協(xié)變和逆變

  • Static classes:靜態(tài)類

  • Delegate inference:委托推斷,允許將方法名直接賦給委托變量\

C# 1.2

2003 年 4 月隨 Visual Studio 2003 和 .NET Framework 1.1 發(fā)布

  • 當(dāng) IEnumerator 實(shí)現(xiàn) IDisposable 時(shí),foreach 循環(huán)中生成的代碼會(huì)在 IEnumerator 上調(diào)用 Dispose河劝。

C# 1.0

2002 年 1 月隨 Visual Studio 2002 和 .NET Framework 1.0 發(fā)布

  • Classes :面向?qū)ο筇匦员陂牛С诸愵愋?/p>

  • Structs:結(jié)構(gòu)

  • Interfaces:接口

  • Events:事件

  • Properties:屬性,類的成員赎瞎,提供訪問字段的靈活方法

  • Delegates:委托,一種引用類型牌里,表示對(duì)具有特定參數(shù)列表和返回類型的方法的引用

  • Expressions,Statements,Operators:表達(dá)式、語句务甥、操作符

  • Attributes:特性牡辽,為程序代碼添加元數(shù)據(jù)或聲明性信息,運(yùn)行時(shí)敞临,通過反射可以訪問特性信息

  • Literals:字面值(或理解為常量值)态辛,區(qū)別常量,常量是和變量相對(duì)的


---END---

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挺尿,一起剝皮案震驚了整個(gè)濱河市奏黑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌编矾,老刑警劉巖熟史,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窄俏,居然都是意外死亡蹂匹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門凹蜈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怒详,“玉大人,你說我怎么就攤上這事踪区±ニ福” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵缎岗,是天一觀的道長静尼。 經(jīng)常有香客問我,道長传泊,這世上最難降的妖魔是什么鼠渺? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮眷细,結(jié)果婚禮上拦盹,老公的妹妹穿的比我還像新娘。我一直安慰自己溪椎,他們只是感情好普舆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布恬口。 她就那樣靜靜地躺著,像睡著了一般沼侣。 火紅的嫁衣襯著肌膚如雪祖能。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天蛾洛,我揣著相機(jī)與錄音养铸,去河邊找鬼。 笑死轧膘,一個(gè)胖子當(dāng)著我的面吹牛钞螟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谎碍,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鳞滨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了椿浓?” 一聲冷哼從身側(cè)響起太援,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扳碍,沒想到半個(gè)月后提岔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笋敞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年碱蒙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夯巷。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赛惩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趁餐,到底是詐尸還是另有隱情喷兼,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布后雷,位于F島的核電站季惯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臀突。R本人自食惡果不足惜勉抓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望候学。 院中可真熱鬧藕筋,春花似錦、人聲如沸梳码。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翎承,卻和暖如春硕盹,著一層夾襖步出監(jiān)牢的瞬間符匾,已是汗流浹背叨咖。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啊胶,地道東北人甸各。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像焰坪,于是被迫代替她去往敵國和親趣倾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容