随着 .NET 8 的发布,C# 12.0 引入了多项令人兴奋的新特性,其中 主构造函数(Primary Constructors) 和 集合表达式(Collection Expressions) 是两个非常实用且能显著提升开发效率的语法糖。本文将用通俗易懂的方式,带您从零开始掌握这两个 C# 12.0 新特性,即使是编程小白也能轻松上手!

在 C# 12.0 之前,我们通常需要在类中显式定义字段和构造函数:
public class Person{ private readonly string _name; private readonly int _age; public Person(string name, int age) { _name = name; _age = age; } public void Introduce() => Console.WriteLine($"Hi, I'm {_name}, {_age} years old.");}而 C# 12.0 引入了 主构造函数,允许我们在类声明时直接在括号中定义参数,这些参数会自动成为类的私有字段(仅限于类体中使用)。
public class Person(string name, int age){ public void Introduce() => Console.WriteLine($"Hi, I'm {name}, {age} years old.");}是不是简洁多了?name 和 age 在类内部可以直接使用,无需手动声明字段或赋值。
注意:主构造函数目前主要适用于class和struct,但不能与传统构造函数混用(除非你显式调用主构造函数)。
C# 12.0 的另一个亮点是 集合表达式(Collection Expressions)。它提供了一种统一、简洁的方式来初始化数组、列表、Span 等多种集合类型。
以前,我们要这样写:
int[] numbers = new int[] { 1, 2, 3 };List<string> names = new List<string> { "Alice", "Bob" };ReadOnlySpan<char> chars = "Hello".AsSpan();现在,使用集合表达式,只需一个简单的语法 [...] 即可:
// 自动推断为 int[]var numbers = [1, 2, 3];// 转换为 List<string>List<string> names = ["Alice", "Bob"];// 转换为 ReadOnlySpan<char>ReadOnlySpan<char> chars = ['H', 'e', 'l', 'l', 'o'];// 甚至支持展开操作符(spread operator)var moreNumbers = [..numbers, 4, 5]; // 相当于 [1, 2, 3, 4, 5]集合表达式不仅减少了样板代码,还提高了可读性,并且支持 展开操作符 ..,可以轻松合并多个集合。
让我们看一个实际例子,展示如何将这两个 C# 12.0 新特性结合起来使用:
public class Student(string name, params string[] courses){ // 使用集合表达式创建新课程列表 private readonly string[] _courses = [..courses, "General Education"]; public void PrintSchedule() { Console.WriteLine($"{name}'s courses:"); foreach (var course in _courses) { Console.WriteLine($" - {course}"); } }}// 使用var student = new Student("Tom", "Math", "Physics");student.PrintSchedule();// 输出:// Tom's courses:// - Math// - Physics// - General Education在这个例子中,我们利用主构造函数接收学生姓名和课程列表,并通过集合表达式的展开操作符 .. 添加一门默认课程,代码既简洁又功能强大。
ICollection<T> 或支持集合初始化的类型,包括数组、List、Span 等。net8.0。C# 12.0 的 主构造函数 和 集合表达式 极大地简化了日常编码工作,让 C# 代码更加现代、简洁和富有表现力。掌握这些 C# 新特性,不仅能提升开发效率,还能让你的代码更具可读性和维护性。
赶快在你的 .NET 8 项目中尝试这些特性吧!如果你觉得本文对你有帮助,欢迎分享给更多正在学习 C# 12.0 的朋友。
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128903.html