精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩av一区二区在线| 亚洲精品高清在线观看| 国产精品国产亚洲伊人久久 | 成人av网站在线| 日本久久中文字幕| 欧美精品久久久久久久久46p| 风间由美性色一区二区三区四区 | 午夜精品久久久久久99热| 久久精品国产亚洲av久| 九九99久久精品在免费线bt| 欧美日韩在线视频一区| 日本一级淫片演员| 国产在线观看高清视频| 国产精品99久久久久久似苏梦涵| 欧美综合在线观看| 黄色一级片在线免费观看| 成人在线亚洲| 精品视频在线播放免| 国产大片一区二区三区| 国产成人精选| 欧美色视频日本版| 波多野结衣av一区二区全免费观看| 六十路在线观看| 成人福利电影精品一区二区在线观看| 成人写真福利网| 国产性生活视频| 亚洲激情影院| 九九热精品视频| 国产白丝一区二区三区 | 天天射天天干天天| 亚洲激情专区| 欧美精品成人在线| 亚洲熟女www一区二区三区| 成人aaaa| 在线国产精品播放| 五月天精品视频| 亚洲精品亚洲人成在线观看| 亚洲第一国产精品| 丰满岳乱妇一区二区| 在线日韩成人| 日韩欧美激情在线| 国产xxxxhd| 国产一区二区三区亚洲综合| 精品视频在线视频| 亚洲欧美日韩一级| 韩国精品视频在线观看 | 国产三级国产精品国产专区50| 国产黄大片在线观看| 亚洲国产aⅴ成人精品无吗| 激情五月六月婷婷| 在线看一级片| 一区二区国产盗摄色噜噜| wwwjizzjizzcom| 蜜臀av在线| 亚洲资源中文字幕| 精品无码一区二区三区爱欲| 成人影音在线| 福利视频一区二区| 欧美一级裸体视频| 成人免费黄色| 欧美一区二视频| 丰满人妻一区二区三区53视频| 日韩一区网站| 亚洲成人网久久久| 一级黄色片大全| 激情五月综合网| 色妞欧美日韩在线| 天天干中文字幕| 激情久久一区| 青青精品视频播放| 中文字幕黄色av| 国产一区视频在线看| 成人av资源| 四虎影视在线观看2413| 久久精品一区二区三区不卡 | 三级影片在线观看欧美日韩一区二区 | 在线免费观看视频| 亚洲色图国产| 97在线免费观看| 国产免费a视频| 国产在线观看一区二区| 国产精品传媒毛片三区| 日本在线视频1区| 国产精品护士白丝一区av| 国产女人18毛片| 忘忧草在线日韩www影院| 欧美日韩一区二区在线视频| 三级网站免费看| 伊人久久大香线蕉| 欧美刺激性大交免费视频| www.国产色| 极品少妇xxxx精品少妇| 国外成人免费视频| 97在线观看免费观看高清 | 久久先锋影音av鲁色资源网| 亚洲欧洲国产精品久久| 2019中文字幕在线电影免费| 欧美在线不卡视频| 少妇精品无码一区二区三区| 日韩在线观看| 欧美在线观看网址综合| hs视频在线观看| 国产日韩亚洲欧美综合| 国产在线视频在线| 成人不卡视频| 日韩精品视频免费专区在线播放 | 久久精品日产第一区二区| 91久久久在线| 久蕉在线视频| 亚洲国产精品欧美一二99| 亚洲老女人av| 亚洲97av| 久久久久久国产| 国产女人18毛片18精品| 国产精品系列在线| 免费观看日韩毛片| 91蜜桃臀久久一区二区| 日韩亚洲精品电影| 国产精品视频一区在线观看| 国产老妇另类xxxxx| 亚洲v国产v| 伊人色综合一区二区三区影院视频| 337p亚洲精品色噜噜| 熟女少妇内射日韩亚洲| 一区视频在线| 亚洲va欧美va在线观看| 在线免费观看的av网站| 色综合久久综合网欧美综合网 | 第四色婷婷基地| 免费av一区| 57pao成人永久免费视频| 黄色片一区二区三区| 亚洲人成网站在线| 91pony九色| 清纯唯美日韩| 国产精品视频网站| av在线电影网| 欧美色偷偷大香| 国产午夜精品久久久久久久久| 午夜亚洲性色视频| 欧美日韩精品一区| 中文在线а√天堂| 亚洲人午夜精品| 天码人妻一区二区三区在线看| 99久久久国产精品免费蜜臀| 97免费视频观看| 国产福利资源一区| 久久久久亚洲精品国产| 蜜臀av在线观看| 亚洲国产另类av| 国产精品久久久久久在线观看| 国自产拍偷拍福利精品免费一| 丁香婷婷久久久综合精品国产| 手机在线免费观看av| 日韩一卡二卡三卡四卡| 免费一级片视频| 粉嫩久久99精品久久久久久夜| 日韩精品一区二区免费| 国产精品99久久免费观看| 97视频在线免费观看| 日本护士...精品国| 欧美在线播放高清精品| 久久久精品少妇| 国产不卡视频在线播放| 老太脱裤让老头玩ⅹxxxx| 欧美午夜寂寞| 国产精品伦子伦免费视频| 欧美激情午夜| 精品久久久久久综合日本欧美| 粉嫩aⅴ一区二区三区| 久久综合精品国产一区二区三区| 国产激情在线观看视频| 99久久99热这里只有精品| 91网免费观看| 午夜日韩成人影院| 色黄久久久久久| 欧美熟女一区二区| 色诱视频网站一区| 国产精品久久久免费看| 国产成人av福利| 欧美牲交a欧美牲交aⅴ免费下载| jizzjizz欧美69巨大| 91在线|亚洲| 超碰aⅴ人人做人人爽欧美| 在线观看不卡av| 亚洲av无码一区二区三区dv| 大伊人狠狠躁夜夜躁av一区| 中文字幕 自拍| 国产精品88888| 国产三级三级三级看三级| 7777久久香蕉成人影院| 精品一区二区国产| 9999在线精品视频| 欧美在线观看网站| 色操视频在线| 色偷偷偷亚洲综合网另类| 色欲av伊人久久大香线蕉影院| 欧美视频中文字幕| 亚欧视频在线观看| 一区视频在线播放| 97超碰在线免费观看| 国产一区二区在线视频| 成人免费视频久久| 亚洲三级视频| 日本精品福利视频| 日韩免费一区| 农村寡妇一区二区三区| 911精品国产| 91香蕉亚洲精品| 秋霞国产精品| 欧美专区福利在线| 岛国片av在线| 欧美乱大交做爰xxxⅹ性3| yw视频在线观看| 亚洲男人天堂2019| 秋霞网一区二区| 91精品福利在线一区二区三区| 波多野结衣一区二区在线| 精品久久久久久中文字幕一区奶水| 青青草原在线免费观看| 国产精品视频观看| 亚洲激情视频小说| 97se狠狠狠综合亚洲狠狠| 精品人妻无码中文字幕18禁| 麻豆久久一区二区| 亚洲综合色在线观看| 免费亚洲一区| 国产欧美日韩网站| 1024成人| 久草免费福利在线| 欧美天堂亚洲电影院在线观看 | 国产破处视频在线观看| 久久影视一区二区| 加勒比综合在线| 久久久久久久久久久黄色| 日韩成人av一区二区| 国产成人av网站| 无码国产精品久久一区免费| 国产精品77777竹菊影视小说| 91小视频在线播放| 国产一区视频网站| 免费欧美一级片| 国产成a人亚洲| 亚洲av人人澡人人爽人人夜夜| 国产69精品一区二区亚洲孕妇| 亚洲av无一区二区三区久久| 国产伦精一区二区三区| 免费国偷自产拍精品视频| 国产精品自拍毛片| 成年人小视频在线观看| eeuss国产一区二区三区| 中文字幕第3页| 久久综合九色综合久久久精品综合 | 日韩精品在线观看av| 亚洲精选成人| 妺妺窝人体色www在线小说| 午夜影院日韩| 污污的网站18| 韩国v欧美v亚洲v日本v| 91精产国品一二三| 91免费国产在线| 在线观看免费黄色网址| 亚洲三级电影全部在线观看高清| 国产精品久久久久久久精| 亚洲综合激情网| 伊人手机在线视频| 欧美三级在线视频| av手机免费看| 日韩毛片在线看| freemovies性欧美| 欧美国产视频日韩| 在线免费看h| 成人看片人aa| 噜噜噜天天躁狠狠躁夜夜精品| 日本一区高清不卡| 在线免费观看日本欧美爱情大片| 人妻夜夜添夜夜无码av| 日韩综合小视频| 少妇丰满尤物大尺度写真| 91麻豆123| 在线观看亚洲网站| 亚洲成人午夜电影| 中文字幕一区二区三区四区视频| 欧美一区二区三区在线观看| 天天躁日日躁狠狠躁喷水| 永久免费毛片在线播放不卡| 欧美videossex| 国产成人精品免高潮在线观看 | 精品视频第一区| 久久福利综合| 2022亚洲天堂| 国产伦精品一区二区三区免费迷| 捆绑裸体绳奴bdsm亚洲| 亚洲婷婷国产精品电影人久久| 国产精品9191| 欧美区在线观看| 五月天婷婷在线观看| 日韩视频免费中文字幕| 乱馆动漫1~6集在线观看| 亚洲精品欧美日韩专区| 国产欧美日韩精品一区二区免费| 国产人妻人伦精品| 免费精品视频最新在线| 国产亚洲色婷婷久久99精品91| 中文字幕在线一区二区三区| 欧美精品一二三四区| 精品国产乱子伦一区| 日本中文字幕在线看| 欧美一区第一页| 亚洲国产中文在线二区三区免| 日本在线观看一区二区| 日韩一区二区久久| 手机看片国产精品| 国产精品天美传媒| 国产一级免费视频| 亚洲电影成人av99爱色| www视频在线看| 国产精品自拍小视频| 九九热线有精品视频99| 日韩黄色短视频| 国产黄色91视频| 手机av在线看| 欧美精品 日韩| 午夜在线视频播放| 国产精品成人va在线观看| 欧美色图婷婷| 国产日韩av网站| 国产成人综合自拍| 欧美成人一区二区三区高清| 欧美精品国产精品| 1pondo在线播放免费| 国产精品色悠悠| 日韩综合网站| 亚洲人视频在线| 国产精品美女视频| 亚洲在线精品视频| 日韩一区二区av| 宅男噜噜噜66国产精品免费| 欧美精品一区二区视频| 亚洲欧美日韩国产| 欧美多人猛交狂配| 在线一区二区三区四区五区| 日本a一级在线免费播放| 欧美在线视频播放| 国产不卡一二三区| jizz欧美激情18| 中文成人av在线| 亚洲天堂视频网| 精品激情国产视频| 国产一区二区三区视频在线| 成年丰满熟妇午夜免费视频 | 国产精品污www一区二区三区| 欧美日本不卡高清| 亚洲av人人澡人人爽人人夜夜| 午夜不卡av在线| 国产一二三区在线视频| 国产欧美在线视频| 五月婷婷亚洲| aaaaa黄色片| 激情成人中文字幕| 极品白浆推特女神在线观看| 日韩av片永久免费网站| 色综合天天综合网中文字幕| 一级黄色片在线免费观看| 一区二区三区高清不卡| 神马午夜电影一区二区三区在线观看 | 日韩黄色精品视频| 亚洲人成电影在线| 伊人久久大香| 草草视频在线免费观看| 久久婷婷色综合| 国产欧美日韩成人| 88xx成人精品| 久久高清精品| 中国极品少妇xxxx| 欧美在线观看一区二区| 1769免费视频在线观看| 精品欧美一区二区在线观看视频| 久久中文精品| 激情五月少妇a| 亚洲丝袜一区在线| 国产专区精品| 国产精品亚洲αv天堂无码| 中文字幕一区二区三区在线播放 | 欧美在线观看成人| 国产精品国产自产拍高清av王其| 亚洲av少妇一区二区在线观看 | 在线观看亚洲一区二区| 欧美精品久久久久a| 精品av一区二区| 午夜福利三级理论电影| 欧美视频一区在线| 123区在线| 亚洲精品一区二区三区蜜桃久| 粉嫩13p一区二区三区| 中文字幕在线观看1| 91精品国产精品| 综合天堂久久久久久久| 白白色免费视频| 欧美精品一区二区三区四区|