日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

look look C#7

發布時間:2023/12/4 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 look look C#7 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vs2017也rc好幾個版本了,本想跟進看看c#7加入了什么內容,去搜索c#7,確實找到了不少文章,無奈很多特性ide根本不讓編譯啊。。。所以今天主要列出已經確定了的c#7特性(一般來說rc后也不會加入新的特性了,其它的預覽特性我們可能等c#8哈哈)


out變量

在c#7之前我們得這樣

在c#7中我們可以這樣

當然你還可以使用“var”

這算一個小更新,其實這個問題存在很久了,應該也很好解決,不知為何到c#7才開始引入,不管如何以后可以少些一行代碼了。


元組(Tuples)

需要安裝nuget包:System.ValueTuple

個人覺得這是c#7中帶來最cool也是最有用的變化了,我們從頭來看。

大家還記得“Tuple”嗎?不記得?ok我們看看它的定義。

在來看看使用

想不想哭。。講真,自我編程以來幾乎沒有用過Tuple,“ItemN”對開發者非常的不友好,我寧愿創建一個struct或class來定義屬性器。

我們在c#7中試試(這也算多返回值了)?

如果你覺得return (1,xxx)不夠準確,那么你可以

如果你不想result.xxx,那么你還可以“解構”

你還可以這樣(不推薦)

還可以在方法內臨時創建一個元組

通過這些特性我們還可以連續聲明并賦值變量了

解構類(不推薦)

回到目錄

模式匹配(Pattern matching)

這一塊主要是對“switch”進行了豐富,有點類似c#6的異常過濾器

在之前的版本中switch只能case常量,而現在可以擁有更多的條件了

在c#7中我們可以這樣


本地引用和返回(Ref locals and returns)

這個個人比較少用,簡單寫個對比代碼


本地函數(Local functions)

這個是個很實用的功能,算是action、和func的豐富,我們來看一個例子:

遞歸調用在c#7之前

在c#7中

回到目錄

表達式可用于更多成員(More expression-bodied members)


表達式拋出異常(Throw expressions)


值類型的異步返回(Generalized async return types)

需要安裝nuget包:System.Threading.Tasks.Extensions

嚴格意義上這個不算一個語法的新特性而是增加了一些類。

在之前我們想用“async”、“await”就必須使用Task作為返回值(void特殊情況忽略),但Task是一個引用類型(class),這樣在非常簡單的任務中會造成浪費(內存和gc)

在c#7中微軟添加了一個nuget包,增加了一個新的類型“ValueTask”用來解決這個問題。它是值類型的。


數值語法改進(Numeric literal syntax improvements)

媽媽再也不怕我多加個0啦~


寫在最后

寫這個的時候還是蠻頭疼的,因為一下子想不起來這個特性的適用場景,還是需要具體實踐之后才能體會新的語法是否有用。

值得注意的是一些新的語法既然跟nuget包扯上了關系,這個我們下次再看細看,主要是roslyn的功勞。

參考資料:https://docs.microsoft.com/zh-cn/dotnet/articles/csharp/csharp-7

原文地址:http://www.cnblogs.com/ants/p/6382264.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的look look C#7的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。