.NET中文官方博客

免费、 跨平台、 开源。一个用于构建所有应用程序的开发人员平台

Latest posts

.NET 9 预览版 6:新功能抢先看
Aug 4, 2024
Post comments count 1
Post likes count 1

.NET 9 预览版 6:新功能抢先看

Amy Peng
Amy Peng

本篇翻译于.NET Team的.NET 9 Preview 6 is now available! 现在是了解最新 .NET 9 预览版的好时机!我们刚刚发布了第六个预览版,在之前预览版的基础上添加了一些很棒的功能,并对 .NET Runtime、SDK、库、C# 和框架(包括 ASP.NET Core、Blazor 和 .NET MAUI)进行了重大改进。请查看下面链接的完整发行说明并立即开始使用。                                                            下载 .NET 9 Preview 6                                                   此版本包含以下改进:  📚库:  ⏱️Runtime:  🛠️SDK  您可以在下面找到有关 .N...

C# 13:探索最新的预览功能 
Jul 23, 2024
Post comments count 0
Post likes count 0

C# 13:探索最新的预览功能 

Mia Wu
Mia Wu

本篇翻译于Kathleen Dollard 的C# 13: Explore the latest preview features - .NET Blog (microsoft.com)  C# 13 已初具雏形,其新特性侧重于灵活性、性能以及使您最喜欢的功能在日常中变得更容易使用。我们以公开的方式构建 C#,在今年的 Microsoft Build 大会上,我们会让您一睹 C# 13 的精彩之处。今天,我们想分享一下C# 13 当前的状态,以及您今天就可以尝试的新功能,并提供有关此版本及以后计划中的功能更新。让我们更详细地了解这些新功能。  立即试用 C# 13  在我们深入研究 C# 13 的每个新功能之前,您可能想知道如何使用它。  您可以在最新的 .NET 9 预览版(撰写本文时为预览版 6)和 Visual Studio 2022-17.11 的最新预览版中找到 C# 13 的最新预览版。若要访问预览功能,请在项目文件中将您的语言版本设置为preview:  params集合  C# 13扩展了 params关键字,使其适用于可以通过集合表达式构造的任何类型。无论是编写方法还是调用方法,都增加了灵活性。  当 params 关键字出现在参数之前时,对该方法的调...

C#12新功能合集四:使用默认 lambda 参数重构C#代码
Jul 21, 2024
Post comments count 0
Post likes count 0

C#12新功能合集四:使用默认 lambda 参数重构C#代码

Amy Peng
Amy Peng

本文翻译于David Pine的这篇文章:Refactor your code with default lambda parameters 。 本文是探讨 C# 12的各种功能的四篇系列文章中的最后一篇。在这篇文章中,我们将探讨“默认 lambda 参数”功能,使开发人员能够在 lambda 表达式中使用默认参数值。本系列涵盖了很多内容:  这些功能是我们不断努力提高代码可读性和可维护性的一部分。让我们详细探索它们!  默认 Lambda 参数🧮 默认 lambda 参数是 C# 12 中的一项新功能,允许开发人员在 lambda 中表达默认参数值。此功能是 C# 方法中现有默认参数功能的自然扩展。  C# 12 之前🕰️ 在 C# 12 之前,当您定义需要提供某种默认行为的 lambda 表达式时,您必须使用空合并运算符 (??) 或条件运算符 (?:)。请查看以下示例:  使用 C# 12 🤓  相反,使用默认 lambda 参数后,您可以直接在 lambda 表达式中定义 lambda 参数的默认值。默认 lambda 参数的语法类似于方法中默认参数的语法。默认值在参数名称和等号 (=) 后指定。请查看以下示例:  当涉及默认参数时,Lambda 表达式遵循与方法相同的规则。默认值必须是编译时常量,并...

Visual Studio Code 的 .NET MAUI 扩展现已正式发布 
Jun 23, 2024
Post comments count 0
Post likes count 1

Visual Studio Code 的 .NET MAUI 扩展现已正式发布 

Mia Wu
Mia Wu

本篇翻译于Maddy Montaquila的The .NET MAUI Extension for Visual Studio Code is now Generally Available 今天,我们非常高兴地宣布 .NET MAUI VS Code 扩展插件结束了预览阶段,并将包含一些期待已久的新功能 - 包括 XAML IntelliSense 和 Hot Reload!  什么是 .NET MAUI 扩展插件?  .NET MAUI 扩展插件为您提供了在轻量级 Visual Studio Code 中开发 .NET MAUI 应用所需的工具。它基于C# Dev Kit 和 C# 扩展构建,提供了解决方案资源管理器、C# Hot Reload、强大的 C# IntelliSense 等众多功能。.NET MAUI 扩展增加了针对移动设备和桌面设备的能力,此外,借助最新版本的扩展,增加了 XAML IntelliSense 和 XAML Hot Reload,同时让您的 VS Code 体验更加精简和简单。  全新的和改进的 XAML 编辑体验  .NET MAUI 扩展的预览版附带了基本的 XAML 语法高亮显示和自动补全功能,但它与我们想要交付的完整体验相距甚远。在过去的一年里,我们对 Visual Studio 中现有的 XAML 语言服务进行了现代化改造,将其打包,并带到 VS Code中以供您进行...

C#12新功能合集三:使用任意类型别名重构C#代码
Jun 14, 2024
Post comments count 3
Post likes count 1

C#12新功能合集三:使用任意类型别名重构C#代码

Amy Peng
Amy Peng

本文翻译于David Pine的这篇文章: Refactor your code using alias any type。 这篇文章是四篇系列文章中的第三篇,主要探讨C# 12的各种功能。在这篇文章中,我们将深入探讨“别名任何类型”功能,该功能允许您使用 using 指令为任何类型创建别名。这个系列已经初具规模:  所有这些功能都将继续我们的旅程,使我们的代码更具可读性和可维护性,这些被认为是开发人员应该知道的“日常 C#”功能。让我们深入了解吧!  别名任意类型*️⃣  C# 12 引入了使用 using 指令为任意类型添加别名的功能。此功能允许您指定映射到其他类型的别名。这包括元组类型、指针类型、数组类型,甚至非开放泛型类型,所有这些类型都可以在您的代码中使用。此功能在以下场景特别有用:  官方 C# 文档提供了很多有关如何使用此功能的示例,但我并不想在此重复这些示例,而是决定编写一个演示应用程序来示范该功能的各个方面。 可空引用类型  此功能支持大多数类型,但可空引用类型除外。也就是说,您无法为可空引用类型设置别名, C# 编译器会报告错误 CS9132:使用的别名不能是可空引用类型。以下内容摘自功能说明,以帮助澄清这一点:  示例应用程序:UFO...

.NET Build 2024:引领AI与云原生应用开发的新篇章
Jun 10, 2024
Post comments count 1
Post likes count 0

.NET Build 2024:引领AI与云原生应用开发的新篇章

Amy Peng
Amy Peng

本文翻译自.NET Team的.NET Announcements and Updates from Microsoft Build 2024 - .NET Blog。 在 Microsoft Build 2024 上,我们很高兴推出一系列旨在使 .NET 开发更快、更容易的新功能和工具。   探索 Microsoft Build 2024 上的 .NET 会议,了解新功能的实际效果,或者通过下载 .NET 9 Preview 4 亲自尝试。  以下是我们的更新和公告:  让我们从如何使用 .NET 为开发人员改进 AI 开发开始。  .NET 与人工智能  .NET 为您提供了使用 AI 创建功能强大的应用程序的工具。您可以使用Semantic Kernel来编排 AI 插件,从而将 AI 功能无缝集成到您的应用程序中。您可以使用最先进的库(例如 OpenAI、Qdrant 和 Milvus)来增强应用程序的功能。您还可以使用 .NET Aspire 将应用程序部署到云端,确保最佳性能和可扩展性。 让我们更深入地了解这些内容。  AI基础知识  我们引入了一种新的 Tensor<T> 类型。张量是许多数学模型的基本组成部分,包括深度学习算法。它们是用于保存神经网络中的...

加入 Microsoft Build 2024 的 .NET 团队! 
Jun 2, 2024
Post comments count 1
Post likes count 1

加入 Microsoft Build 2024 的 .NET 团队! 

Mia Wu
Mia Wu

本篇翻译于Mehul Harry的 Join the .NET Team at Microsoft Build 2024! 倒计时已经开始! Microsoft Build 2024 即将到来,如果您是 .NET 爱好者,请准备好迎接一系列精彩的会议。 无论您是经验丰富的开发人员还是刚刚开始您的开发之旅,每个人都能找到适合自己的东西。  活动形式:混合体验  无论您是在西雅图还是在舒适的家中,都可以加入我们。 通过现场和在线会议的相结合,您不会错过任何精彩内容。  深入了解 .NET:不容错过的会议  请查看下面的会议,了解即将到来的活动。 如需了解更多详情并预订席位,请务必访问会议链接。  请务必查看 Microsoft Build 上的所有 .NET 会议并将它们添加到您的个人资料议程中。  我们还提供了一组很棒的预先录制的 .NET 会议:  联系和学习  会见专家  请访问我们的专家聚会区,讨论 一切.NET 相关内容。 我们的专家随时准备分享他们对最新趋势的见解并回答您的具体问题。  现场演示  在我们的现场演示区体验 .NET 的强大功能。 通过实际示例和实际应用探索新的工具、特性和功能。  加入对话  与其他开发人员和更广泛的 .NET 社区互动。 分享您的经验、交流想法并建立超越活动范围的联系。  准备好深入研究了吗?  这个安排有望使 ...

C#12新功能合集二:使用集合表达式重构代码
Jun 2, 2024
Post comments count 1
Post likes count 0

C#12新功能合集二:使用集合表达式重构代码

Amy Peng
Amy Peng

本文翻译于David Pine的这篇文章: Refactor your code with C# collection expressions。 本文是系列文章的第二篇,该系列文章涵盖了探索C# 12功能的各种重构场景。 在这篇文章中,我们将了解如何使用集合表达式重构代码,我们将学习集合初始化器、各种表达式用法、支持的集合目标类型和spread语法。 该系列的进展情况如下:  这些功能延续了我们的旅程,使我们的代码更具可读性和可维护性,并且被认为是开发人员应该了解的“日常 C#”功能。  集合表达式🎨  C# 12 引入了集合表达式,它为许多不同的集合类型提供简单且一致的语法。 当使用集合表达式初始化集合时,编译器生成的代码在功能上与使用集合初始化项等效。 该功能强调一致性,同时允许编译器优化低级的 C#。 当然,每个团队都可以决定采用哪些新功能,如果您愿意,您可以尝试并引入这种新语法,因为之前所有初始化集合的方法都将继续工作。  对于集合表达式,元素出现在左括号 [ 和右括号 ] 之间的内联元素序列。 继续阅读以了解有关集合表达式如何工作的更多信息。  初始化🌱  C# 提供了许多语法来初始化不同的集合。 集合表达式取代了所有这些,所以让我们先来看看初始化整数数组的不同方法,如下所示:  这四个版本在功能上都是等效的,并且编译器为每个版...

C#12新功能合集一:使用主构造函数重构代码
May 27, 2024
Post comments count 1
Post likes count 0

C#12新功能合集一:使用主构造函数重构代码

Amy Peng
Amy Peng

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