精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#7特性預覽

移動開發
在過去一年間,我們為讀者展示了多個已考慮加入C# 7中的特性。在最近發布的 Visual Studio 15 預覽版中,微軟決定為用戶展現這些特性,使其成為C# 7 最終發布的一部分。

[[165106]]

在過去一年間,我們為讀者展示了多個已考慮加入C# 7中的特性。在最近發布的 Visual Studio 15 預覽版中,微軟決定為用戶展現這些特性,使其成為C# 7 最終發布的一部分。

元組值類型

.NET 提供了一個元組(Tuple)類型,但具體在 C# 中使用時卻存在著各種各樣的問題。由于元組類型是一個引用類型,因此在一些對于性能相當敏感的代碼中,你很可能會避免因使用它而造成 GC 的開銷。同時,元組類型是不可變的,雖然這使跨線程共享變得更安全,但也意味著每次進行變更都必須分配一個新的對象。

為了應對這一問題,C# 7 將提供一個值類型的元組。這是一個可變類型,對那些重視性能的代碼來說,這種方式將更為高效。同時,作為值類型,它在每次進行分配時都會生成一個拷貝,因此幾乎沒有產生多線程問題的風險。

你可以通過以下語法創建一個元組:

  1. var result = (5, 20); 

你也可以選擇對元組中的值進行命名,這一點并不是必須的,只是讓代碼具有更好的可讀性。

  1. var result = (count: 5, sum: 20); 

你可能會想,“很棒的特性,但我自己也能寫得出來”。但下一個特性才是重頭戲。

多返回值

在類C風格的語言中,要在一個函數中返回兩個值始終是一件麻煩事。你只能選擇將結果封裝成某種結構,或是使用輸出參數。與許多函數式編程語言一樣,C#選擇了***種方式為你提供這一特性:

  1. (intint) Tally (IEnumerable<int> list) 

可以看到,在這里使用泛用的元組有一個基本問題:我們將無從得知每個字段的作用。因此,C#選擇通過一個編譯器花招對結果進行命名:

  1. (int Count, int Sum) Tally (IEnumerable<int> list) 

我們在此需要強調一點:C#并沒有生成一個新的匿名類型,你所獲得的仍舊是一個元組,但編譯器將假設它的屬性為 Count 和 Sum,而不是 Item1 和 Item2。所以,以下代碼行的作用都是等價的:

  1. var result = Tally (list); 
  2. Console.WriteLine (result.Item1); 
  3. Console.WriteLine (result.Count); 

請注意一點,我們現在還不具備多賦值語法,如果這種語法最終實現,那么它的用法可能是這樣的:

  1. (count, sum) = Tally (list); 

除了提供簡單的功能性函數之外,多返回值的實用性還體現在異步代碼的編寫上,因為在 async 函數中是不允許使用 out 參數的。

模式匹配:改進的 Switch 語法塊

VB 與函數式程序員對于 C# 抱怨得最多的一點就是 C# 中的 switch 語句功能十分有限。VB 開發者希望能夠進行范圍匹配,而習慣了F#或 Haskell 的開發者則希望能夠使用分解式的模式匹配。C#打算同時提供這兩種特性。

在對類型進行模式匹配時,你可以創建一個變量以保存轉型的結果。舉例來說,在對一個 System.Object 使用 switch 語句時,你可以編寫以下代碼:

  1. case int x: 

如果該對象是數值類型,則變量x將得以賦值。否則的話,程序將按從上至下的順序檢查下一個 case 語句塊。如果你想更具體地進行匹配,還可以使用范圍檢查:

  1. case int x when x > 0: 
  2. case int y: 

在這個示例中,如果該對象是正整數,則x代碼塊將被執行。如果對象是 0 或負整數,而y代碼塊將被執行。

如果需要檢查 null 值,則只需使用以下語法:

  1. case null

模式匹配:分解

目前為止,我們僅僅展示了某種對 VB 中已有的特性所做的增量式改進,而模式匹配真正的強大之處在于分解,它可以將某個對象完全拆開,考慮一下以下語法:

  1. if (person is Professor {Subject is var s, FirstName is "Scott"}) 

這段代碼完成了兩件事:

  1. 它創建了一個本地變量s,將其賦值為((Professor) person) .Subject。
  2. 它執行了一次相等性檢查 ((Professor) person) .FirstName == "Scott"。

如果將其用C# 6 代碼改寫則是這樣:

  1. var temp = person as Professor; 
  2. if (temp != null && temp.FirstName == "Scott"
  3.     var s = temp.Subject 

在最終發布中,我們預計能夠同時看到對 switch 語句塊的這兩種改進。

引用返回

對于大數據結構進行引用傳遞比起值傳遞要快得多,因為后者需要對整個結構進行拷貝。與之類似,返回一個大數據結構的引用一樣能夠提升速度。

在類似于C這樣的語言中,可以通過指針返回某個結構的引用。這種方式會帶來一個常見的問題,即指針所指向的內存可能會因為某種原因而已經被回收了。

C#通過使用引用的方式回避這一問題,引用本身是一個附加了規則的指針。最重要的一條規則是,你不能夠返回某個本地變量的引用。如果你嘗試這樣做,那么該變量所引用的棧信息在函數返回時就已經變得不可訪問了。

在微軟的展示代碼中,它所返回的引用指向一個數組中的某個結構。由于它實質上是指向數組中某個元素的指針,因此隨后可以對數組本身進行修改。舉例來說:

  1. var x = ref FirstElement (myArray) 
  2. x = 5; //MyArray[0] now equals 5 

這一語法的用例是對性能高度敏感的代碼,在大多數應用中都無需使用這一特性。

二進制字面值(Binary Literals)

此次發布還引入了一個小特性,即二進制字面值。這一語法只是一個簡單的前綴而已,例如 5 可以表示為“0b0101”。這一特性的主要用例是設置基于 flag 的枚舉,以及創建位掩碼(bitmask),以用于與C風格語言的互操作。

本地函數

本地函數是指在另一個函數中所定義的函數。***眼看來,本地函數似乎只是比匿名函數稍好的一種語法。但它實際上還存在幾個優點:

  • 首先,你無需為其分配一個委托以保存該函數。這不僅減少了內存壓力,同時還允許編譯器對該函數進行內聯操作。
  • 其次,在創建閉包時,也無需為其分配一個對象,因為它能夠直接訪問本地變量。這一點同樣能夠改善性能,因為它也減少了 GC 的壓力。

按照第二條規則推算,你將無法創建一個指向本地函數的委托。這一點對于代碼的組織其實是一個優點,因為你無需創建獨立的函數,并且將現有函數的狀態作為顯式的參數進行傳遞。

部分類的改進

***演示的特性是一種處理部分類的新方式。在過去,部分類的應用是基于代碼生成優先的概念而出現的。所生成的代碼將包含一系列部分方法,開發者可以選擇實現這些方法,以調整類的行為。

通過新的“replace”語法,開發者就多了一種新選擇,能夠以最直接的方式編寫代碼,隨后再引入代碼生成器,并重寫這些方法。以下將通過一個簡單的示例表現開發者的代碼編寫方式:

  1. public string FirstName {getset;} 

簡單又清晰,但完全不符合 XAML 風格應用的寫法。因此,代碼生成器將生成如下代碼:

  1. private string m_FirstName; 
  2. static readonly PropertyChangedEventArgs s_FirstName_EventArgs =new PropertyChangedEventArgs ("FirstName"
  3.  
  4. replace public string FirstName { 
  5.     get { 
  6.         return m_FirstName; 
  7.     } 
  8.     set { 
  9.         if (m_FirstName == value) 
  10.             return
  11.     m_FirstName = value; 
  12.     PropertyChanged?.Invoke (this, m_FirstName_EventArg); 

通過“replace”關鍵字,所生成的代碼將直接替換手寫的代碼,添加所缺失的功能。在這個示例中,我們甚至還能夠處理一些開發者經常會忽略的麻煩的部分,例如對 EventArgs 對象進行緩存。

雖然這個官方示例僅用于屬性變更通知,但這一技術還可用于各種“面向切面編程(AOP)”的場景,例如在代碼中注入日志記錄、安全檢查、參數校驗以及其他各種繁瑣的樣板式代碼。

如果讀者想實際了解一下這些特性,可以觀賞 Channel 9 中的視頻“The Future of C#”。

責任編輯:倪明 來源: 博客園
相關推薦

2012-10-19 14:28:10

Ubuntu 12.1

2011-11-08 10:17:34

Ubuntu 12.0特性

2011-11-29 09:40:08

Linux Deepi特性

2021-09-08 10:36:01

Flink阿里云

2011-11-23 09:56:01

Linux Deepi

2009-06-15 09:35:48

Eclipse 3.5

2009-09-02 09:15:24

Windows Emb

2013-11-04 17:28:44

Android

2011-03-03 11:06:04

特性iOS 4.3

2009-03-10 19:02:04

Windows 7 Candiadate

2016-10-13 13:33:41

反射特性c#

2009-02-12 15:53:58

Windows 7預覽功能體驗

2009-02-23 10:16:47

Windows 7 企業功能

2009-05-25 08:56:26

Windows 7壁紙硬件

2012-05-21 14:16:36

Fedora17新特性

2009-05-11 10:13:42

PHP 6命名空間Unicode

2009-07-31 09:29:05

GWT 2.0

2011-04-19 18:42:54

Windows Emb特性

2010-10-08 09:54:30

IBM AIX 7

2009-08-04 08:48:44

C#內置特性
點贊
收藏

51CTO技術棧公眾號

成人免费视频网站在线观看| 欧美少妇xxxx| 午夜精品免费在线| 美女精品国产| 国产丝袜视频在线观看| 国内久久视频| 亚洲人成在线观看| 久久精品一卡二卡| 少妇在线看www| 国产精品视频你懂的| 国产高清精品一区二区| 一级黄色在线视频| 欧美日韩爆操| 中文字幕亚洲一区二区三区| 国产高潮失禁喷水爽到抽搐| 亚洲成av在线| 香蕉成人伊视频在线观看| 视频一区二区三区在线观看| 亚洲伦理在线观看| 麻豆精品视频在线| 91成人在线视频| 国产午夜手机精彩视频| 欧美男同视频网| 欧美sm美女调教| 激情五月俺来也| 在线看片福利| 亚洲一区二区三区四区五区黄 | 丰满的少妇愉情hd高清果冻传媒| 国产一级在线观看| 成人国产精品免费网站| 91久久久在线| 毛片在线免费播放| 国产亚洲精品bv在线观看| 操日韩av在线电影| 国产亚洲精品精品精品| 婷婷成人影院| 亚洲国产欧美久久| wwwxxxx在线观看| 亚洲三级在线| 欧美日韩精品欧美日韩精品一| 日本毛片在线免费观看| 爱草tv视频在线观看992| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲成人在线视频网站| 丁香婷婷在线| 久久精品夜夜夜夜久久| 免费毛片一区二区三区久久久| 亚洲精品一区二区三区四区| 国产在线一区观看| 成人免费直播live| 国产视频在线观看免费| 国产主播一区二区三区| 成人国产精品久久久久久亚洲| 国产精品国产精品国产| 日本强好片久久久久久aaa| 国产成人精品电影| 黄色av一区二区| 日韩精品每日更新| 国产精品久久久久久久久影视| 天天综合久久综合| 美女久久久精品| 国产在线久久久| 国产欧美第一页| 国产精品一级在线| 国产精品国模大尺度私拍| 亚洲第一免费视频| 成人av免费观看| 你懂的网址一区二区三区| 精品推荐蜜桃传媒| 中文在线资源观看网站视频免费不卡 | 爽爽爽爽爽爽爽成人免费观看| 中字幕一区二区三区乱码| 欧美gayvideo| 欧美成人h版在线观看| 国产中文字幕免费| 男女av一区三区二区色多| 欧美精品久久久久久久免费观看 | 在线电影院国产精品| 激情在线观看视频| 91九色鹿精品国产综合久久香蕉| 日韩欧美一二区| 香港三日本8a三级少妇三级99| 综合伊思人在钱三区| 深夜福利91大全| 免费三片在线播放| 久久免费黄色| 成人精品视频99在线观看免费| 精品人妻一区二区三区四区不卡 | 欧美午夜欧美| 日本高清视频在线播放| 亚洲地区一二三色| 欧美日韩怡红院| 国产一区二区三区免费观看在线| 亚洲成人中文字幕| 1024在线看片| 亚洲电影成人| 国产裸体写真av一区二区| 丰满少妇高潮在线观看| 国产欧美精品一区aⅴ影院| 丰满人妻一区二区三区53号 | 一本一道波多野结衣一区二区| 国产精品一区二区小说| 国语一区二区三区| 国产人妖乱国产精品人妖| 欧美成人四级hd版| 久久久精品免费看| 激情综合色播五月| 日韩欧美一区二区三区| 久久精品一二三区| 快射视频在线观看| 欧美做受69| 亚洲黄页视频免费观看| 超碰人人干人人| 欧美视频亚洲视频| 国产精品6699| 乱色精品无码一区二区国产盗| 中文字幕不卡一区| 欧美男女爱爱视频| japansex久久高清精品| 亚洲午夜国产成人av电影男同| 久久久久久久福利| 久久99最新地址| 久久亚洲高清| av影院在线| 日韩一区二区免费在线电影| 2019男人天堂| 久久狠狠婷婷| 精品国产区在线| caoporn免费在线| 欧美日韩国产在线播放网站| www.黄色在线| 亚洲一区二区网站| 高清国产在线一区| 在线xxxx| 日韩午夜三级在线| 人人艹在线视频| 青青草伊人久久| 日韩精品欧美一区二区三区| 伊人久久国产| 亚洲精品一区二区在线| 天天操天天干视频| 99久久精品久久久久久清纯| 日韩网站在线免费观看| 黄色欧美在线| 久久久爽爽爽美女图片| 免费看黄色一级视频| 亚洲精品美国一| 五月天婷婷在线观看视频| 仙踪林久久久久久久999| 国产精品亚洲视频在线观看| 69久久精品| 欧美日韩成人在线| 日本午夜在线观看| 国产剧情av麻豆香蕉精品| 国产香蕉一区二区三区| 6080成人| 68精品久久久久久欧美| 你懂的视频在线| 在线观看一区二区精品视频| 国产精成人品免费观看| 极品少妇一区二区三区精品视频| 欧美aaa在线观看| h视频久久久| 欧美野外猛男的大粗鳮| 久久经典视频| 欧美日韩电影一区| 午夜69成人做爰视频| 成人免费视频免费观看| 欧美精品色婷婷五月综合| 日韩av自拍| 亚洲a成v人在线观看| aa级大片免费在线观看| 国产亚洲精品久久久久动| 91久久精品国产91性色69| 夜夜精品视频一区二区| 97人妻精品一区二区三区免 | 777777av| 精品久久一区| 91中文字幕在线观看| 国产理论在线| 亚洲午夜av电影| 99久久精品国产一区色| 精品人伦一区二区三区蜜桃免费| 国产精品20p| 国产精品18久久久久| 久久久999视频| 国产高清一区二区| 国产精品免费在线| 日韩毛片一区| 久久久久久久久久久网站| 免费看男男www网站入口在线| 欧美狂野另类xxxxoooo| 亚洲精品午夜国产va久久成人| 国产精品情趣视频| 日本泡妞xxxx免费视频软件| 日韩精品一级中文字幕精品视频免费观看 | 久久久久国产一区| 亚洲国产免费看| 日韩一本精品| 国产福利一区二区精品秒拍| 国产精品视频999| 美女精品导航| 日韩在线视频观看正片免费网站| 天堂网在线播放| 5566中文字幕一区二区电影| 在线天堂中文字幕| 亚洲精品第1页| 国产调教在线观看| 99riav一区二区三区| 国产一区二区在线观看免费视频| 99在线精品免费视频九九视| a级网站在线观看| 色综合综合网| 精品欧美一区二区精品久久| 国产高清精品二区| 国产精品露脸自拍| 一区二区三区四区日本视频| 久久久久久久久91| 搞黄网站在线观看| 色妞久久福利网| 国产黄在线观看免费观看不卡| 亚洲国产天堂网精品网站| 国产又黄又猛又爽| 欧美日韩一级片在线观看| av黄色在线看| 午夜日韩在线电影| 午夜免费激情视频| 成人免费一区二区三区视频| 这里只有久久精品| 99久久99久久精品免费看蜜桃| 小日子的在线观看免费第8集| 奇米精品一区二区三区四区| 97在线免费公开视频| 亚洲激情成人| www.男人天堂网| 午夜天堂精品久久久久| 国产免费一区二区三区四在线播放| 九九热精品视频在线观看| 久久日韩精品| 婷婷激情久久| 欧美一二三四五区| 日韩精品导航| 免费久久久一本精品久久区| 少妇精品久久久| 欧美精品国产精品久久久| 网曝91综合精品门事件在线 | 成人av资源电影网站| 日本一区二区久久精品| 国产精品一区二区av交换| 欧美裸体网站| 精品国产91| 亚洲国产精品视频一区| 97精品国产一区二区三区| 在线视频不卡一区二区三区| 亚洲先锋影音| 欧美做暖暖视频| 伊人狠狠色j香婷婷综合| 国产日韩av网站| 国产精品一二| 天堂av在线网站| 久久99精品国产| 99热这里只有精品2| 盗摄精品av一区二区三区| 2一3sex性hd| 国产三级一区二区| 久久一级免费视频| 亚洲最新视频在线播放| 精品久久免费视频| 一本大道久久精品懂色aⅴ | 极品销魂美女一区二区三区| 永久免费看片在线观看| av午夜一区麻豆| 国产成人精品无码免费看夜聊软件| 国产欧美一区二区在线| 久久国产精品国语对白| 亚洲午夜羞羞片| 一级黄色在线观看| 宅男在线国产精品| 亚州视频一区二区三区| 中文字幕av一区二区三区谷原希美| 麻豆传媒在线观看| 午夜精品福利电影| 激情久久99| 国产91免费视频| 国产日产精品一区二区三区四区的观看方式 | 91福利视频在线观看| 色综合视频一区二区三区日韩| 国产99在线免费| 成人短片线上看| 欧美国产日韩激情| 人人超碰91尤物精品国产| 日本黄色大片在线观看| 久久久久久久综合色一本| 欧美亚洲日本在线| 91成人在线精品| 性欧美8khd高清极品| 一区二区三区日韩在线| 男人添女人下部高潮视频在线观看| 国产成人精品日本亚洲专区61| 麻豆精品久久| 日本一区免费观看| 在线成人国产| 日韩 国产 一区| 国产欧美一区二区在线| 国产香蕉视频在线| 日韩一区和二区| av一区在线观看| 91成人福利在线| 大奶在线精品| 久久av秘一区二区三区| 日韩精品成人一区二区三区| 一级黄色电影片| 中文字幕一区二区三区不卡在线| 日韩一区二区视频在线| 欧美不卡一区二区三区四区| 色视频在线免费观看| 国产ts人妖一区二区三区 | 亚洲国产精品成人av| 久久久久久久久免费视频| 国产成人精品久久亚洲高清不卡| 黄色欧美在线| 欧美无砖专区免费| 国产在线播精品第三| 国产7777777| 91福利社在线观看| 神马精品久久| 午夜精品蜜臀一区二区三区免费 | 蜜桃精品视频在线观看| 丰满圆润老女人hd| 欧美日韩在线第一页| 黄色av中文字幕| 欧美激情第三页| 日韩一区二区三区高清在线观看| 亚洲一二三区精品| 日本不卡的三区四区五区| 成人性生交大免费看| 狠狠色噜噜狠狠狠狠97| 亚洲 美腿 欧美 偷拍| 久久免费国产视频| 成人精品动漫一区二区三区| av片在线免费| 成人在线综合网| 国产午夜久久久| 亚洲国产精品va在看黑人| 美女网站在线看| 麻豆成人av| 天堂成人免费av电影一区| 国产精品成人网| 日韩肉感妇bbwbbwbbw| 国产日韩影视精品| 中文字幕在线观看视频网站| 国产视频一区在线| 三级成人在线| 日韩中文一区二区三区| 日韩精品欧美精品| 中国特黄一级片| 91精品国产一区二区三区| 91蜜桃在线视频| 国产精品日韩欧美一区二区三区| 伊人影院久久| 中文字幕xxx| 欧美丝袜第三区| 麻豆影视国产在线观看| av噜噜色噜噜久久| 91久久久久| 波多野结衣 在线| 欧美撒尿777hd撒尿| 免费a在线看| av一区二区三区四区电影| 亚洲看片一区| 亚洲一区二区三区日韩| 欧美精品九九99久久| 欧美人与禽猛交乱配| 国产伦精品一区二区三区视频黑人| 久久成人国产| 啪啪一区二区三区| 精品国产成人系列| 台湾佬成人网| 国产成人精品免费看在线播放| 成人动漫视频在线| 天天干天天操天天爱| 久久九九免费视频| 女仆av观看一区| 亚洲天堂网2018| 性欧美疯狂xxxxbbbb| yourporn在线观看中文站| 97se亚洲综合| 久久激情综合| 日韩a级片在线观看| 亚洲男人天堂九九视频| 国产精品成人**免费视频| 成人黄色av片| 亚洲三级电影全部在线观看高清| 亚洲av片在线观看| 亚洲一区二区三区香蕉| 亚洲在线观看| 欧洲第一无人区观看| 亚洲色图在线观看| 澳门精品久久国产| 色噜噜狠狠一区二区|