国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

開發
轉眼之間C#都已經更新到了12了,那么C# 12 中新增的八大功能大家都了解過嗎?今天我們來簡單講解一下C# 12 中的八大新增功能。

轉眼之間C#都已經更新到了12了,那么C# 12 中新增的八大功能大家都了解過嗎?今天我們來簡單講解一下C# 12 中的八大新增功能。

一、主構造函數

在 Visual Studio 2022 版本 17.6 預覽版 2 中引入。

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

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

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

2.代碼示例

將任何參數放在類型名稱后面的括號中:

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

以下代碼初始化從主構造函數參數計算的兩個只讀屬性:

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 中引入。

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

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

// Create an array
int[] array = [55, 99, 100, 33];

// Create a list
List<string> list = ["one", "two", "three", "five", "追逐時光者"];

// Create a span
Span<char> c = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'k'];

// Create a jagged 2D array
int[][] two2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [88, 8, 9]];

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

展開運算符(集合表達式中的 ..)可將其參數替換為該集合中的元素。 參數必須是集合類型。 以下示例演示了展開運算符的工作原理:

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}, ");
}

沒有.. 會有異常:

正常輸出:

三、內聯數組

在 Visual Studio 2022 版本 17.7 預覽版 3 中引入。

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

內聯數組的聲明與下面的結構類似:

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

你可以像使用其他數組一樣使用它們:

        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 中引入。

可以為 Lambda 表達式的參數定義默認值。 語法和規則與將參數的默認值添加到任何方法或本地函數相同。

如果 lambda 表達式只有一個輸入參數,則括號是可選的:

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

兩個或更多輸入參數使用逗號加以分隔:

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

可以顯式指定類型,如下面的示例所示:

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

注意:輸入參數類型必須全部為顯式或全部為隱式;否則,便會生成 CS0748 編譯器錯誤!!

五、ref readonly參數

在 Visual Studio 2022 版本 17.8 預覽版 2 中引入。

ref readonly修飾符表示方法希望參數是一個變量,而不是一個非變量的表達式。不是變量的表達式包括常量、方法返回值和屬性。如果參數不是變量,編譯器會發出警告。

六、任何類型的別名

在 Visual Studio 2022 版本 17.6 預覽版 3 中引入。

可以使用 using alias 指令來別名任何類型,而不僅僅是命名類型。也就是說,你可以為元組類型、數組類型、指針類型或其他不安全類型創建語義別名。

使用 using 關鍵字為元組類型創建別名,并進行調用:

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 中引入。

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

示例代碼:

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 中引入。

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

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

要使用攔截器,用戶項目必須指定 <InterceptorsPreviewNamespaces> 屬性。這是允許包含攔截器的命名空間列表。

<InterceptorsPreviewNamespaces>$(InterceptorsPreviewNamespaces);Microsoft.AspNetCore.Http.Generated;MyLibrary.Generated</InterceptorsPreviewNamespaces>
責任編輯:趙寧寧 來源: 追逐時光者
相關推薦

2023-08-30 07:39:16

PawSQL數據庫

2021-07-29 06:55:03

Spring@AutowriedbyType注入

2024-09-12 08:20:39

2023-08-29 09:31:01

Scrapy網頁爬蟲

2020-02-20 08:30:49

OSPF網絡協議路由協議

2024-06-28 09:37:14

技巧.NET開發

2024-04-28 08:20:52

Controller接口URL

2024-11-01 10:48:01

C#WPF程序

2021-08-05 18:21:29

Autowired代碼spring

2020-09-11 06:39:29

ThreadLocal線程

2021-04-10 07:04:00

WPS技巧辦公軟件

2017-10-13 11:13:16

微信隱藏功能視頻編輯

2019-02-12 11:15:15

Spring設計模式Java

2019-07-08 10:18:38

MPLSIP數據

2021-07-06 18:12:40

芯片芯片發展芯片市場

2016-03-18 19:03:35

認知計算IBM

2022-11-10 09:00:41

2024-07-25 13:53:19

2021-11-17 11:03:14

Python代碼語法

2016-01-11 09:48:07

點贊
收藏

51CTO技術棧公眾號

国产精品美女久久久久久2018| 国产在线美女| 美女啪啪无遮挡免费久久网站| 黄色成人91| 成人黄网大全在线观看| www日韩中文字幕在线看| 精品一区二区三区免费| 国产素人视频在线观看| 亚洲精品欧美极品| 午夜精品久久久久久久久| 九九综合九九| 91中文字幕网| 久久久噜噜噜久久| 93久久精品日日躁夜夜躁欧美| 欧美xx视频| 97超碰人人爱| 国产视频精品va久久久久久| 秋霞午夜av一区二区三区| 超碰在线网址| 欧美精品一区二区视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日本中文| 中文在线天堂网| 国产有码一区二区| 欧美视频一区二区三区…| 999国产精品| 你懂的在线网址| 国产日韩中文在线| 色婷婷亚洲综合| 欧美在线高清| а天堂8中文最新版在线官网| 国产欧美一区二区在线播放| 欧美精品一二三| 日韩高清欧美激情| 欧美色999| 狠狠热免费视频| 国产mv久久久| 天天影视网天天综合色在线播放 | 国产一区二区三区四区hd| 在线国产电影不卡| 久久电影一区| 国模冰冰炮一区二区| 无码精品a∨在线观看中文| 欧美xxxx做受欧美.88| 国产精品美女久久久久久久久久久| 中文字幕精品影院| 天堂中文资源在线| 久久久久久久久久久久久久久久av| 精品日韩欧美一区二区| 国产高清不卡二三区| 999色成人| 日本亚洲天堂| 国产精品初高中精品久久| 日韩欧美国产高清| a在线欧美一区| 国产精品一区二区av交换| 黄色影院在线播放| 日韩中文字幕av在线| 色播久久人人爽人人爽人人片视av| 国产精品天天看| 久久社区一区| 色黄网站在线观看| 成人免费在线小视频| 日本一欧美一欧美一亚洲视频| 色婷婷久久久综合中文字幕| 久久精品国产99国产精品| 成人精品在线| 网址你懂得在线观看| 日本一区二区三区视频在线观看 | 国产精品亚洲综合在线观看 | 日韩av中文字幕在线| 久久久久久久久久久黄色| 国产毛片一区二区三区| 2021av在线| 国产日本在线播放| 国产精品视频免费在线观看| 91麻豆精品国产自产在线观看一区| 丁香桃色午夜亚洲一区二区三区 | 国产黄色特级片| 成人激情在线播放| 亚洲精品中文字幕av| 夜夜嗨av一区二区三区网页| 日韩成人精品在线| 亚洲性视频大全| av在线视屏| 日日噜噜噜夜夜爽爽狠狠视频 | 久久久免费视频网站| 91九色国产社区在线观看| 日韩精品视频在线观看网址| 一区二区三区在线观看网站| 蜜臀精品久久久久久蜜臀| 首页亚洲中字| av今日在线| 中文字幕网站视频在线| 无码毛片aaa在线| 国产日韩一区在线| 亚洲精品日韩久久久| 亚洲第一福利视频在线| 国产一区二区三区四区五区入口| 亚州综合一区| 中文在线аv在线| 校园春色欧美| 亚洲 中文字幕 日韩 无码| 欧美国产一区二区在线| 欧美一级在线亚洲天堂| 精品呦交小u女在线| 91久久一区二区| 亚洲国产成人自拍| 捆绑变态av一区二区三区| 国产精品久久天天影视| 日本中文字幕视频一区| av香蕉成人| 亚洲一区二区三区成人| 成人性做爰aaa片免费看不忠| 天天综合色天天综合色hd| 国产精品日韩专区| 欧美xxxx做受欧美.88| 精品粉嫩超白一线天av| 亚洲国产日韩一区二区| 亚洲精品国产嫩草在线观看| 国产精品系列在线观看| 日韩一区二区免费电影| 精品视频三区| 999香蕉视频| 亚洲va久久久噜噜噜久久狠狠| 国产精品扒开腿做爽爽爽男男 | 26uuu亚洲电影在线观看| 国产精品粉嫩av| 欧美爱爱视频免费看| 人偷久久久久久久偷女厕| 91精品国产综合久久久久久久久 | 亚洲免费视频成人| 国产麻豆视频精品| 性色av一区二区怡红| 成人精品影院| 精品资源在线| 原创国产精品91| 日韩中文字幕在线视频观看| 久久久久久综合| 久久精品久久精品| 亚洲无毛电影| 亚洲乱码精品| 成人黄色短视频在线观看| 成人国产视频在线观看| 奇米精品一区二区三区四区| 欧美激情91| 亚洲精品99| 天天综合精品| 欧美裸体在线版观看完整版| 婷婷成人在线| 欧美韩一区二区| 国内毛片久久| 国产精品va视频| 亚洲三级在线| 国产精品久久久久久久久久辛辛 | 香蕉乱码成人久久天堂爱免费| 中文av字幕一区| 国产清纯在线一区二区www| 26uuu精品一区二区| 成人18精品视频| 91麻豆精品一区二区三区| 972aa.com艺术欧美| 99精品桃花视频在线观看| 99精品国产视频| 久久久亚洲精品一区二区三区 | 一本久久a久久精品亚洲| 午夜精品福利视频网站| 欧美性xxxxx极品| 一本大道久久a久久精二百| 懂色aⅴ精品一区二区三区蜜月| 亚洲精品国产无天堂网2021| 亚洲一二三四区| 精品久久久久久国产| 欧美午夜丰满在线18影院| 欧美午夜免费电影| 日韩精品一区二区在线观看| 日韩电视剧在线观看免费网站| 亚洲欧美在线x视频| xxxxx成人.com| 九九精品在线视频| 韩国三级日本三级少妇99| 国产成人小视频在线观看| 91精品中文在线| 免费影院在线观看一区| 中文字幕黄色大片| 3d动漫一区二区三区| 国产三级三级看三级| 福利在线国产| 激情小视频在线观看| 先锋成人av| 国产麻豆久久| 欧美日韩一区二区三区在线电影| 日韩免费高清| 亚洲欧美激情诱惑| 国产一区三区三区| 国产精品视频麻豆| 在线免费亚洲电影| 亚洲乱亚洲乱妇无码| 欧美极品少妇xxxxⅹ喷水| 91精品中国老女人|