메뉴 건너뛰기

게임 커뮤니티 4브론즈

IT 해외 뉴스

本文翻译于David Pine的这篇文章:Refactor your C# code with primary constructors 作为 .NET 8 一部分的 C# 12 引入了一组引人注目的新功能! 在这篇文章中,我们将探讨其中一个功能,特别是主构造函数,解释其用法和相关性。 然后,我们将演示一个重构示例,以展示如何将其应用到您的代码中,并讨论其好处和潜在的缺陷。 这将帮助您了解这一更改的影响并有助于您决定是否采用该功能。  主构造函数1️⃣  主构造函数被认为是一项“C#日常”的开发人员功能。 它们允许您在一个简洁的声明中定义类或结构及其构造函数。 这可以帮助您减少需要编写的样板代码量。 如果您一直在关注 C# 版本,您可能熟悉记录类型,其中包括主构造函数的第一个示例。  与记录类型的区别  记录类型作为类或结构的类型修饰符引入,这简化了构建简单类(如数据容器)的语法。 记录可以包括主构造函数。 该构造函数不仅生成一个支持字段,而且还为每个参数公开一个公共属性。 与传统的类或结构类型不同,在传统的类或结构类型中,主构造函数参数可以在整个类定义中访问,而记录被设计为透明的数据容器。 他们本质上支持基于值的相等,这与他们作为数据持有者的预期角色相一致。 因此,它们的主构造函数参数可以作为属性访问是合乎逻辑的。  重构示例✨  .NET 提供了许多模板,如果您曾经创建过Worker Service,您可能见过以下Worker类模板代码:  namespace Example.Worker.Service { public class Worker : BackgroundService { private readonly ILogger


원문출처 : https://devblogs.microsoft.com/dotnet-ch/c12-%E5%BC%95%E5%85%A5%E4%B8%BB%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%EF%BC%9A%E7%AE%80%E5%8C%96%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84
번호 제목 글쓴이 날짜 조회 수
공지 자동수집 대상 사이트 KanoT 2023.02.14 2159
2131 [DevBlogs] Do more in Microsoft Mesh with data and AI 뉴스봇 2024.05.30 607
2130 [DevBlogs] F# developer stories: how we’ve finally fixed a 9-year-old performance issue 뉴스봇 2024.05.30 394
2129 [DevBlogs] DirectSR Preview Available Now 뉴스봇 2024.05.30 955
2128 [DevBlogs] A graphical depiction of the steps in building a C++ executable, basics 뉴스봇 2024.05.30 437
2127 [DevBlogs] A modern Extension Manager has arrived with Visual Studio 17.10 뉴스봇 2024.05.30 690
2126 [DevBlogs] May 2024: A look at the latest Microsoft Entra key feature releases, announcements, and updates 뉴스봇 2024.05.29 393
2125 [Stack Overflow] Developers get by with a little help from AI: Stack Overflow Knows code assistant pulse survey results 뉴스봇 2024.05.29 527
2124 [DevBlogs] Azure Developer CLI (azd) – Build 2024 Recap 뉴스봇 2024.05.29 302
2123 [DevBlogs] May patches for Azure DevOps Server 뉴스봇 2024.05.29 766
2122 [DevBlogs] Build 2024: What’s new for Microsoft Graph 뉴스봇 2024.05.29 1080
2121 [DevBlogs] VisualStudio.Extensibility 17.10: Debug your extensions with the Diagnostics Explorer 뉴스봇 2024.05.29 918
2120 [DevBlogs] Build 2024 Recap: Bridging the chasm between your ML and app devs 뉴스봇 2024.05.29 856
2119 [DevBlogs] Visual Studio Code CMake Tools Extension 1.18 Update: Quick Start with CMake and more… 뉴스봇 2024.05.29 1448
2118 [Stack Overflow] An open-source development paradigm 뉴스봇 2024.05.28 949
2117 [DevBlogs] Introducing links to source code for .NET API Docs 뉴스봇 2024.05.28 638
2116 [DevBlogs] Is there any difference between String­From­IID and String­From­CLSID? 뉴스봇 2024.05.27 331
» [DevBlogs] C#12 引入主构造函数:简化代码重构 뉴스봇 2024.05.27 355
2114 [DevBlogs] RNW 0.74 Launches: A Gallery Glow-up and Fabric Foundations! 뉴스봇 2024.05.25 518
2113 [DevBlogs] Microsoft Graph town hall APIs now available in beta 뉴스봇 2024.05.25 458
2112 [DevBlogs] Setting the contents of a Windows Runtime Vector from C++/WinRT in one call 뉴스봇 2024.05.24 371
위로