2025年的C#:实践中的新功能

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

2025年的C#:实践中有哪些新变化?

.NET世界从未止步。2025年,C#语言持续积极发展,为开发人员提供了编写更简洁、更安全、更高性能代码的工具。平台的每次更新都让日常开发变得更加便捷,而新的语言结构则有助于摆脱样板代码。

在本文中,我们将解析2025年C#的三项关键新特性,您现在就可以开始使用它们。所有代码示例均来自实际实践,并已针对教育门户网站pythonlib.ru进行了调整。



1. 主构造函数 (Primary Constructors)

最受期待的新特性之一是类和结构的主构造函数。以前,此功能仅适用于记录 (record)。现在,您可以直接在类头中声明构造函数参数,这大大减少了代码量。

让我们看一个创建用户模型的经典示例:



之前 (C# 12及更早版本):

public class User{    public string Name { get; }    public int Age { get; }

public User(string name, int age) { Name = name; Age = age; }}


现在 (C# 2025):

public class User(string name, int age){    public string Name { get; } = name;    public int Age { get; } = age;        public string Greeting => $"你好,{Name}! 你{Age}岁了。";}


如您所见,代码变得更简洁了。参数 name 和 age 现在可以在整个类体中使用。这在 ASP.NET Core 中使用依赖注入 (DI) 时尤其方便:



public class WeatherService(HttpClient httpClient, ILogger<WeatherService> logger){    public async Task<string> GetWeatherAsync(string city)    {        logger.LogInformation("正在请求城市 {City} 的天气", city);        var response = await httpClient.GetStringAsync($"https://api.weather.com/{city}");        return response;    }}


主构造函数使您可以省去大量字段和显式赋值,使代码更具声明性。



2. 新型集合 (Collection Expressions)

2025年,C#获得了强大的集合操作更新。现在,您可以使用统一的语法——集合表达式 (collection expressions) 来初始化列表、数组,甚至 Span<T>。



新语法使用方括号 [] 代替花括号 {} 或 new List<T>():



各种集合的初始化示例:

// 数组int[] numbers = [1, 2, 3, 4, 5];

// 列表List<string> names = ["安娜", "鲍里斯", "维克多"];

// Span (无需分配)Span<char> letters = ['A', 'B', 'C'];


主要亮点是展开运算符 (spread) ..。它允许您在不调用 .Concat() 或 .AddRange() 的情况下合并集合:



int[] first = [1, 2, 3];int[] second = [4, 5, 6];

// 合并数组int[] combined = [..first, ..second]; // [1, 2, 3, 4, 5, 6]

// 在开头和结尾添加元素int[] extended = [0, ..combined, 7]; // [0, 1, 2, 3, 4, 5, 6, 7]


此语法不仅适用于数组,还适用于 List<T>、HashSet<T>,甚至适用于实现了 ICollection<T> 的自定义集合。对于习惯了Python的开发人员来说,这种方法会感觉非常熟悉和直观。



3. 改进的字符串插值和异常处理

2025年C#中的字符串插值获得了几项重要改进,使其更加灵活。



3.1. 在 nameof 运算符中进行插值

现在您可以

博客

书籍推荐