吉林網(wǎng)站優(yōu)化百度聯(lián)盟一天多少收入
.NET 10 首個(gè)預(yù)覽版已經(jīng)在前兩天發(fā)布,該版本在 .NET Runtime、SDK、libraries、C#、ASP.NET Core、Blazor 和 .NET MAUI 等多個(gè)方面都有重大改進(jìn)和增強(qiáng)。其中C# 14 預(yù)覽版也伴隨著.NET 10預(yù)覽版一起發(fā)布了,今天就和大家一起體驗(yàn)一下.NET 10 和 C# 14 。
01、安裝
首先需要下載.NET 10.0.0-preview.1版本SDK,然后直接安裝即可。
安裝完成后,可以通過dotnet --list-sdks指令查看是否已成功安裝.NET 10 review 1。
除此之外還可以通過更新IDE Visual Studio 2022至最新版本。
02、創(chuàng)建.NET 10 類庫
下面我們就來在 Visual Studio 2022 中體驗(yàn).NET 10 。
但是當(dāng)我們創(chuàng)建.NET 10類庫時(shí),卻發(fā)現(xiàn)框架列表中并沒有.NET 10 選項(xiàng),如下圖。
這是因?yàn)閂isual Studio默認(rèn)不可以使用預(yù)覽版的SDK。因此我們先要在IDE中開啟使用預(yù)覽版SDK功能,具體開啟方法如下:
首先選中菜單中的工具,然后點(diǎn)開選項(xiàng)對(duì)話框,在環(huán)境列表中找到預(yù)覽功能,找到使用.NET SDK預(yù)覽版復(fù)選框并選中,最后點(diǎn)擊確認(rèn)即可。記得需要重啟Visual Studio。
我們?cè)俅蝿?chuàng)建.NET 10 類庫,此時(shí)發(fā)現(xiàn)框架列表中已經(jīng)可以選擇.NET 10選項(xiàng)了,如下圖:
03、開啟C# 14預(yù)覽版
在.NET 10 預(yù)覽版 1 中也跟隨著發(fā)布了C# 14 預(yù)覽版。但是要想使用C# 14預(yù)覽版功能也是需要做一些設(shè)置的。
我們可以先選中上節(jié)創(chuàng)建的NET10類庫,然后右鍵鼠標(biāo),選擇屬性,找到生成中的高級(jí)選項(xiàng),可以發(fā)現(xiàn)當(dāng)前語言版本還是C# 13 ,如下圖。
因此我們需要選擇類庫,右鍵鼠標(biāo),選擇編輯項(xiàng)目文件,在PropertyGroup中添加preview節(jié)點(diǎn),如下圖。
此時(shí)我們將可以使用C# 14 預(yù)覽版功能了。
04、C# 14功能體驗(yàn)
1.field關(guān)鍵字
該關(guān)鍵字主要作用是在編寫屬性訪問器時(shí),不需要額外顯示編寫一個(gè)后備字段。
下面我們看下新老版本中編寫一個(gè)屬性訪問器的差異,代碼如下:
//老版本寫法
private string _msg;
public string MessageOld
{get => _msg;set => _msg = value;
}
//新版本寫法
public string MessageNew
{get;set => field = value;
}
field關(guān)鍵字不單單是讓我們少寫一個(gè)后備字段使得代碼更簡(jiǎn)潔,同時(shí)也使得代碼更安全,防止了因?yàn)椴恍⌒膶?dǎo)致其他屬性方法錯(cuò)誤使用后備字段。
其實(shí)該關(guān)鍵字在C# 13預(yù)覽版就已經(jīng)有了,但是最終并包含進(jìn)C# 13正式版本中,我個(gè)人還是很期待它可以進(jìn)入C# 14 正式版本中的。
2.nameof表達(dá)式支持未綁定的泛型類型
在新的語法中,nameof表達(dá)式的參數(shù)可以是未綁定的泛型類型,如List<>,則結(jié)果為“List”,示例代碼如下:
var result = nameof(List<>);
Console.WriteLine($"nameof(List<>) 結(jié)果為:{result}");
而在老的語法中并不支持這樣寫,否則會(huì)報(bào)錯(cuò)。
3.Span隱式轉(zhuǎn)換
在C# 14中對(duì)System.Span 和 System.ReadOnlySpan類型的支持進(jìn)一步加強(qiáng),添加了一些新的隱式轉(zhuǎn)換,進(jìn)而使得你在使用這些類型時(shí)更加方便自然,即獲得了代碼的性能同時(shí)還不犧牲代碼的安全性。
下面我們就通過代碼演示在C# 14中,int數(shù)組隱式轉(zhuǎn)為Span和ReadOnlySpan,以及Span隱式轉(zhuǎn)換ReadOnlySpan,代碼如下:
public static class SpanExtensions
{public static void HandleSpan<T>(this Span<T> span){}public static void HandleReadOnlySpan<T>(this ReadOnlySpan<T> span){}
}
static class Program
{static void Main(){var array = new int[4] { 5, 6, 7, 8 };//直接調(diào)用拓展方法,int數(shù)組隱式轉(zhuǎn)換為Span<int>array.HandleSpan();//直接調(diào)用拓展方法,int數(shù)組隱式轉(zhuǎn)換為ReadOnlySpan<int>array.HandleReadOnlySpan(); Span<int> span = array;//直接調(diào)用拓展方法,Span<int>隱式轉(zhuǎn)換為ReadOnlySpan<int>span.HandleReadOnlySpan();}
}
C# 14還有一些其他更新,后續(xù)我們將繼續(xù)講解。
注:測(cè)試方法代碼以及示例源碼都已經(jīng)上傳至代碼庫,有興趣的可以看看。https://gitee.com/hugogoos/Planner