日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

C# 12 中新增的幾大功能你都知道嗎?

來源: 責編: 時間:2024-04-23 09:13:58 219觀看
導讀轉眼之間C#都已經更新到了12了,那么C# 12 中新增的八大功能大家都了解過嗎?今天我們來簡單講解一下C# 12 中的八大新增功能。一、主構造函數在 Visual Studio 2022 版本 17.6 預覽版 2 中引入。從 C# 12 開始,可以在類和

轉眼之間C#都已經更新到了12了,那么C# 12 中新增的八大功能大家都了解過嗎?今天我們來簡單講解一下C# 12 中的八大新增功能。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

一、主構造函數

在 Visual Studio 2022 版本 17.6 預覽版 2 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

從 C# 12 開始,可以在類和結構中聲明主構造函數。主構造函數參數都在類的整個主體的范圍內。 為了確保顯式分配所有主構造函數參數,所有顯式聲明的構造函數都必須使用 this() 語法調用主構造函數。 將主構造函數添加到 class 可防止編譯器聲明隱式無參數構造函數。 在 struct 中,隱式無參數構造函數初始化所有字段,包括 0 位模式的主構造函數參數。lL828資訊網——每日最新資訊28at.com

1.主構造函數參數的最常見用途包括:

  • 作為 base() 構造函數調用的參數。
  • 初始化成員字段或屬性。
  • 引用實例成員中的構造函數參數。

2.代碼示例

將任何參數放在類型名稱后面的括號中:lL828資訊網——每日最新資訊28at.com

public class NameParameter(string name){    public string Name => name;}

以下代碼初始化從主構造函數參數計算的兩個只讀屬性:lL828資訊網——每日最新資訊28at.com

public readonly struct Distance(double dx, double dy){    public readonly double Magnitude { get; } = Math.Sqrt(dx * dx + dy * dy);    public readonly double Direction { get; } = Math.Atan2(dy, dx);}

二、集合表達式

在 Visual Studio 2022 版本 17.7 預覽版 5 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

集合表達式引入了一種新的簡潔語法,用于創建常用集合值。可以使用展開運算符(..)將其他集合內聯到這些值中。lL828資訊網——每日最新資訊28at.com

1.下面的示例展示了集合表達式的用法:

// Create an arrayint[] array = [55, 99, 100, 33];// Create a listList<string> list = ["one", "two", "three", "five", "追逐時光者"];// Create a spanSpan<char> c = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'k'];// Create a jagged 2D arrayint[][] two2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [88, 8, 9]];

2.展開運算符(..)示例代碼:

展開運算符(集合表達式中的 ..)可將其參數替換為該集合中的元素。 參數必須是集合類型。 以下示例演示了展開運算符的工作原理:lL828資訊網——每日最新資訊28at.com

int[] item0 = [88, 2, 3];int[] item1 = [22, 5, 6];int[] item2 = [7, 99, 9];int[] single = [.. item0, .. item1, .. item2];foreach (var element in single){    Console.Write($"{element}, ");}

沒有.. 會有異常:lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

正常輸出:lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

三、內聯數組

在 Visual Studio 2022 版本 17.7 預覽版 3 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

運行時團隊和其他庫作者使用內聯數組來提高應用程序的性能。通過內聯數組,開發人員可以在結構類型中創建固定大小的數組。具有內聯緩沖區的結構體應具有與不安全固定大小緩沖區類似的性能特性。lL828資訊網——每日最新資訊28at.com

內聯數組的聲明與下面的結構類似:lL828資訊網——每日最新資訊28at.com

    [System.Runtime.CompilerServices.InlineArray(20)]    public struct Buffer    {        private int _element0;    }

你可以像使用其他數組一樣使用它們:lL828資訊網——每日最新資訊28at.com

        public static void Test()        {            var buffer = new Buffer();            for (int i = 0; i < 20; i++)            {                buffer[i] = i;            }            foreach (var i in buffer)            {                Console.WriteLine(i);            }        }

四、Lambda 表達式中的可選參數

在 Visual Studio 2022 版本 17.5 預覽版 2 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

可以為 Lambda 表達式的參數定義默認值。 語法和規則與將參數的默認值添加到任何方法或本地函數相同。lL828資訊網——每日最新資訊28at.com

如果 lambda 表達式只有一個輸入參數,則括號是可選的:lL828資訊網——每日最新資訊28at.com

Func<double, double> cube = x => x * x * x;

兩個或更多輸入參數使用逗號加以分隔:lL828資訊網——每日最新資訊28at.com

Func<int, int, bool> testForEquality = (x, y) => x == y;

可以顯式指定類型,如下面的示例所示:lL828資訊網——每日最新資訊28at.com

Func<int, string, bool> isTooLong = (int x, string s) => s.Length > x;

注意:輸入參數類型必須全部為顯式或全部為隱式;否則,便會生成 CS0748 編譯器錯誤!!lL828資訊網——每日最新資訊28at.com

五、ref readonly參數

在 Visual Studio 2022 版本 17.8 預覽版 2 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

ref readonly修飾符表示方法希望參數是一個變量,而不是一個非變量的表達式。不是變量的表達式包括常量、方法返回值和屬性。如果參數不是變量,編譯器會發出警告。lL828資訊網——每日最新資訊28at.com

六、任何類型的別名

在 Visual Studio 2022 版本 17.6 預覽版 3 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

可以使用 using alias 指令來別名任何類型,而不僅僅是命名類型。也就是說,你可以為元組類型、數組類型、指針類型或其他不安全類型創建語義別名。lL828資訊網——每日最新資訊28at.com

使用 using 關鍵字為元組類型創建別名,并進行調用:lL828資訊網——每日最新資訊28at.com

using PointTest = (int x, int y);namespace Csharp12{    internal class Class1    {        public static void Test()        {            PointTest point = (10, 20);            Console.WriteLine($"Point coordinates: X={point.Item1}, Y={point.Item2}");        }    }}

七、Experimental屬性

在 Visual Studio 2022 版本 17.7 預覽版 3 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

可以使用 System.Diagnostics.CodeAnalysis.ExperimentalAttribute 來標記類型、方法或程序集,以指示實驗性特征。 如果訪問使用 ExperimentalAttribute 注釋的方法或類型,編譯器將發出警告。 用 Experimental 特性標記的程序集中包含的所有類型都是實驗性的。lL828資訊網——每日最新資訊28at.com

示例代碼:lL828資訊網——每日最新資訊28at.com

namespace Csharp12{    [AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Module | System.AttributeTargets.Property | System.AttributeTargets.Struct)]    public class ExperimentalAttribute : Attribute    {        public ExperimentalAttribute()        {        }    }    [Experimental]    public class ExperimentalClass    {        public void DoSomething()        {            Console.WriteLine("Doing something experimental...");        }    }    internal class Class1    {        public static void Test()        {            ExperimentalClass exp = new ExperimentalClass();            exp.DoSomething();        }    }}

八、攔截器

預覽功能在 Visual Studio 2022 版本 17.7 預覽版 3 中引入。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

攔截器是一種方法,該方法可以在編譯時以聲明方式將對可攔截方法的調用替換為對其自身的調用。 通過讓攔截器聲明所攔截調用的源位置,可以進行這種替換。 攔截器可以向編譯中(例如在源生成器中)添加新代碼,從而提供更改現有代碼語義的有限能力。lL828資訊網——每日最新資訊28at.com

注意:攔截器是一項試驗性功能,在 C# 12 的預覽模式下提供。 在將來的版本中,該功能可能會發生中斷性變更或被刪除。 因此,不建議將其用于生產或已發布的應用程序。lL828資訊網——每日最新資訊28at.com

lL828資訊網——每日最新資訊28at.com

要使用攔截器,用戶項目必須指定 <InterceptorsPreviewNamespaces> 屬性。這是允許包含攔截器的命名空間列表。lL828資訊網——每日最新資訊28at.com

<InterceptorsPreviewNamespaces>$(InterceptorsPreviewNamespaces);Microsoft.AspNetCore.Http.Generated;MyLibrary.Generated</InterceptorsPreviewNamespaces>

本文鏈接:http://m.www897cc.com/showinfo-26-84718-0.htmlC# 12 中新增的幾大功能你都知道嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Meta如何將其緩存一致性提高至99.99999999

下一篇: 如何編寫可讀性高的 C/C++代碼?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
麻豆精品视频在线观看| 亚洲综合激情| 日韩视频在线一区二区| 国产精品大全| 久久一本综合频道| 午夜国产一区| 日韩亚洲在线| 亚洲国产精品国自产拍av秋霞 | 午夜视频在线观看一区二区三区 | 国产精品久久久久99| 欧美α欧美αv大片| 欧美一区二区三区在线播放| 一区二区国产精品| 91久久精品美女高潮| 国内成+人亚洲+欧美+综合在线| 欧美三级电影一区| 欧美精品一区二区在线播放| 久久综合网络一区二区| 久久久91精品国产一区二区三区 | 欧美日韩美女| 欧美日韩高清在线| 国产女人aaa级久久久级| 国产精品乱子乱xxxx| 欧美日韩在线亚洲一区蜜芽| 欧美日韩一卡| 精东粉嫩av免费一区二区三区| 国产亚洲在线观看| 国产一区二区电影在线观看| 亚洲人成网站999久久久综合| 日韩视频在线观看国产| 欧美影院在线| 欧美日韩免费看| 欧美性猛交视频| 国产精品高潮呻吟久久av黑人| 欧美私人网站| 亚洲高清视频在线观看| 亚洲成色www久久网站| 亚洲夜间福利| 一区二区激情| 亚洲一区欧美一区| 亚洲在线中文字幕| 欧美成人免费大片| 欧美日本在线观看| 国产精品男人爽免费视频1 | 一区二区三区四区国产精品| 久久中文字幕一区| 国产欧美日韩另类一区| 国产主播在线一区| 中文av一区二区| 亚洲欧美三级伦理| 久久精彩免费视频| 久久精品二区| 国产精品久久久99| 99国产精品视频免费观看一公开| 日韩视频免费观看高清完整版| 亚洲免费高清视频| 久久青草欧美一区二区三区| 蜜臀av在线播放一区二区三区| 欧美插天视频在线播放| 欧美日韩精品久久久| 欧美三级第一页| 国产亚洲激情在线| 原创国产精品91| 亚洲精品在线观看视频| 亚洲欧美精品在线观看| 久久亚洲不卡| 国产一区二区三区日韩| 亚洲欧美另类国产| 国产精品www网站| 一区二区三区 在线观看视频| 午夜精品久久久久久久99樱桃| 久久久久九九九| 欧美激情第三页| 国产精品久久国产精品99gif| 国产精品综合色区在线观看| 好看不卡的中文字幕| 夜夜精品视频| 久久尤物视频| 狠狠狠色丁香婷婷综合久久五月| 99热这里只有精品8| 久久精品视频网| 国产日韩欧美日韩| 亚洲片在线观看| 亚洲一区视频在线| 国产精品成人aaaaa网站| 亚洲视频电影图片偷拍一区| 久热综合在线亚洲精品| 国内揄拍国内精品少妇国语| 欧美伊人久久| 国产亚洲欧美一级| 亚洲精选在线观看| 久久久久久久97| 国产一区激情| 亚洲午夜在线观看| 男人的天堂亚洲| 国产午夜精品麻豆| 一本久久知道综合久久| 欧美日韩免费一区| 亚洲视频一区在线观看| 欧美刺激性大交免费视频| 亚洲韩国青草视频| 欧美日韩国产成人| 亚洲自拍都市欧美小说| 欧美精品一区二区高清在线观看| 国产乱码精品一区二区三区忘忧草 | 久久三级视频| 欧美日韩一区在线播放| 亚洲国产精品999| 久久国产综合精品| 欧美视频一区二区三区…| 亚洲一二三级电影| 国产女主播在线一区二区| 欧美在线观看视频在线| 激情综合自拍| 午夜精品久久久久久久99热浪潮| 国产精品一区在线播放| 久久久亚洲一区| 国语自产在线不卡| 欧美1区2区3区| 亚洲特级毛片| 国产综合视频在线观看| 欧美成人精品不卡视频在线观看| 中日韩午夜理伦电影免费| 国产日韩一区二区三区| 麻豆免费精品视频| 在线观看三级视频欧美| 久久午夜视频| 中文无字幕一区二区三区| 欧美人成在线视频| 亚洲精品影视| 国产精品一区二区三区四区| 久久亚洲捆绑美女| 在线视频中文亚洲| 国产自产2019最新不卡| 久久久久国产一区二区| 亚洲区免费影片| 欧美精品自拍| 香蕉久久一区二区不卡无毒影院 | 欧美体内谢she精2性欧美| 久久久久久伊人| 在线中文字幕不卡| 激情六月婷婷综合| 国产精品久久97| 韩国在线一区| 久久夜色精品国产| 在线电影欧美日韩一区二区私密| 欧美精品在线观看| 久久精品国产99精品国产亚洲性色 | 亚洲激情在线播放| 国产麻豆视频精品| 欧美日韩国产123| 久久精品在线播放| 亚洲第一精品福利| 国产精品欧美日韩一区| 欧美成人免费在线观看| 欧美制服丝袜第一页| 精品91视频| 欧美aⅴ99久久黑人专区| 亚洲欧美在线免费| 精品69视频一区二区三区| 欧美日韩一区二区在线播放| 久久综合国产精品| 欧美一区国产二区| 亚洲亚洲精品三区日韩精品在线视频 | 久久亚洲综合色| 欧美一区二区高清在线观看| 国产一区二区三区四区五区美女| 欧美日韩免费| 欧美韩日视频| 亚洲一区国产视频| 亚洲伦伦在线| 亚洲第一免费播放区| 国产视频欧美视频| 欧美国产日韩一区二区三区| 亚洲最新在线| 亚洲国产日韩欧美在线动漫| 国产一区二区三区久久悠悠色av| 国产精品精品视频| 久久久av水蜜桃| 亚洲精品久久久久久一区二区| 国产综合激情| 国产日韩欧美麻豆| 国产精品一区二区三区四区| 美女在线一区二区| 久久久久久电影| 久久成人国产| 亚洲巨乳在线| 亚洲激情欧美| 亚洲国产欧洲综合997久久| 一区视频在线| 国产精品久久久久永久免费观看| 久久国产婷婷国产香蕉| 亚洲精品裸体| 国产精品久久97| 国产精品初高中精品久久| 欧美日韩18| 欧美日韩免费| 国产精品v日韩精品| 欧美性jizz18性欧美| 欧美日在线观看| 欧美色图一区二区三区| 欧美色123| 国产精品毛片a∨一区二区三区|国 | 久久青草欧美一区二区三区|