成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 14 新增功能一覽,你覺得實(shí)用嗎?

開發(fā)
今天咱們一起來看看在 C# 14 中新增的幾個功能特性,是否給我們?nèi)粘>幋a帶了來便利。

今天咱們一起來看看在 C# 14 中新增的幾個功能特性,是否給我們?nèi)粘>幋a帶來了便利。

前提準(zhǔn)備

要體驗 C# 14 中的新增功能,你需要安裝最新的 Visual Studio 2022 版本或下載 .NET 10 SDK。

下載 .NET 10 SDK:https://dotnet.microsoft.com/zh-cn/download/dotnet/10.0

圖片

擴(kuò)展成員(Extension Members)

從 C# 14 開始,可以使用兩種語法來定義擴(kuò)展方法。C# 14 添加了 extension 容器,可以聲明擴(kuò)展塊,擴(kuò)展塊是包含類型或該類型的實(shí)例的擴(kuò)展成員的非嵌套、非泛型靜態(tài)類中的塊。在 C# 14 之前,將修飾符添加到 this 靜態(tài)方法的第一個參數(shù),以指示該方法顯示為參數(shù)類型的實(shí)例的成員。

下面的代碼示例定義了 string 類型的擴(kuò)展塊。擴(kuò)展塊包含一個成員:計算字符串中單詞的方法:

C# 14 之前:

namespace CustomExtensionMethods;

public static class MyExtensions
{
    public static int WordCount(this string str) =>
        str.Split([' ', '.', '?'], StringSplitOptions.RemoveEmptyEntries).Length;
}

C# 14 開始:

namespace CustomExtensionMembers;

public static class MyExtensions
{
    extension(string str)
    {
        public int WordCount() =>
            str.Split([' ', '.', '?'], StringSplitOptions.RemoveEmptyEntries).Length;
    }
}

field 關(guān)鍵字

使用令牌 field 可以編寫屬性訪問器體,而無需聲明后備字段。令牌 field 將替換為編譯器合成支持字段。

例如,C# 14 之前,如果要確保 string 屬性無法設(shè)置為 null,則必須聲明一個后備字段并實(shí)現(xiàn)這兩個訪問器:

private string _msg;
public string Message
{
    get => _msg;
    set => _msg = value ?? throw new ArgumentNullException(nameof(value));
}

C# 14 開始,現(xiàn)在可以簡化代碼:

public string Message
{
    get;
    set => field = value ?? throw new ArgumentNullException(nameof(value));
}

可以為字段支持的屬性的一個或兩個訪問器聲明一個主體。

隱式跨度轉(zhuǎn)換

C# 14 在語言中引入了對 System.Span<T> 和 System.ReadOnlySpan<T> 的一流支持。這種支持包括新的隱式轉(zhuǎn)換,使得使用這些類型進(jìn)行編程更加自然。

在 C# 和運(yùn)行時中,Span<T> 和 ReadOnlySpan<T> 被用于多種關(guān)鍵方式。他們的引入可提高性能,而不會造成安全風(fēng)險。C# 14 識別其相互關(guān)系,并支持在 ReadOnlySpan<T>、Span<T> 和 T[] 之間進(jìn)行一些轉(zhuǎn)換。跨度類型可以作為擴(kuò)展方法的接收器、與其他轉(zhuǎn)換組合,或者在泛型類型推理場景中提供幫助。

未綁定的泛型類型與nameof

從 C# 14 開始,nameof 的參數(shù)可以是未綁定的泛型類型。例如,nameof(List<>) 計算為 List。在早期版本的 C# 中,只能使用關(guān)閉的泛型類型(例如 List<int>)返回 List 名稱。

帶修飾符的簡單 lambda 參數(shù)

從 C# 14 開始,可以在不指定參數(shù)類型的情況下,向 lambda 表達(dá)式參數(shù)添加參數(shù)修飾符,例如:scoped、ref、in、out或 ref readonly。

支持更多部分成員(partial members)

從 C# 14 開始可以將實(shí)例構(gòu)造函數(shù)和事件聲明為部分成員(partial members)。

注意:部分構(gòu)造函數(shù)和分部事件必須包含一個定義聲明和一個實(shí)現(xiàn)聲明。

Null 條件賦值

Null 條件成員訪問運(yùn)算符“?.”和“?[]”現(xiàn)在可在賦值或復(fù)合賦值的左側(cè)使用。

在 C# 14 之前,在分配給屬性之前,需要對變量進(jìn)行 null 檢查:

public static void GetUserInfo()
        {
            UserInfo userInfo = null;

            if (userInfo is not null)
            {
                userInfo.Age = CalculateAge(userInfo);
            }
        }

        private static int CalculateAge(UserInfo userInfo)
        {
            return DateTime.Now.Year - userInfo.Birthday.Year;
        }

在 C# 14 中可以使用運(yùn)算符簡化上述代碼 ?. :

注意:運(yùn)算符 = 的右側(cè)僅在左側(cè)不為 null 時才會被計算。如果 userInfo 為 null,則代碼不調(diào)用 CalculateAge。

public static void GetUserInfo()
        {
            UserInfo userInfo = null;
            userInfo?.Name = CalculateAge(userInfo);
        }

        private static int CalculateAge(UserInfo userInfo)
        {
            return DateTime.Now.Year - userInfo.Birthday.Year;
        }

參考文章:

責(zé)任編輯:趙寧寧 來源: 追逐時光者
相關(guān)推薦

2009-10-14 18:35:25

2009-08-03 13:55:03

C#基礎(chǔ)知識

2020-02-17 15:29:00

石墨文檔

2009-08-13 09:46:49

C#歷史C# 4.0新特性

2010-10-21 15:40:05

SQL Server服

2017-09-06 08:12:43

OpenStack功能模塊

2018-09-12 22:18:06

2025-04-16 00:00:02

2024-04-23 08:08:04

C#

2021-01-13 11:28:48

TensorFlow 機(jī)器學(xué)習(xí)人工智能

2009-09-01 13:26:42

JBossWS 3.2

2023-11-23 10:21:11

ECMAScriptJavaScript

2012-02-27 16:44:01

redisNoSQL

2009-06-02 09:38:26

javafx發(fā)布JavaFX介紹JavaFX

2017-10-24 14:57:12

前端Vue 2.5新功能特性

2009-03-08 19:05:05

Windows 7企業(yè)版

2009-06-22 11:24:00

J2EE Weblog

2015-05-11 14:18:45

2024-07-25 13:53:19

2010-10-14 16:55:00

MySQL聯(lián)結(jié)查詢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费国产视频在线观看 | 国产婷婷精品av在线 | 天堂中文在线观看 | 日韩欧美国产成人一区二区 | 欧美日韩黄色一级片 | 国产精品久久久久久久白浊 | 欧美精品在线播放 | 久久久久se | 日韩欧美一区二区三区 | 91av入口| 人人人人干| 国产一区亚洲 | 欧美精品v国产精品v日韩精品 | www97影院 | 久久久久久av | 国产区在线免费观看 | 九九热在线免费观看 | 中文字幕高清免费日韩视频在线 | 成人av大全 | 一区二区三区小视频 | 久久久一区二区三区 | 黄色大片免费观看 | av影音在线 | 日韩成人久久 | 91毛片在线观看 | 国产视频日韩 | 国产中文 | 精品一区二区在线观看 | 精品人伦一区二区三区蜜桃网站 | 午夜在线视频 | 国产区在线免费观看 | 成人精品国产 | 国产91av视频 | 欧美日韩精品一区二区三区四区 | 亚洲自拍偷拍av | 特级特黄特色的免费大片 | 午夜看看| 91久操网| 亚洲欧美一区二区三区1000 | 嫩草视频网 | 爱草在线 |