if (int.TryParse(123, out int number)) // Out 变量内联 { Console.WriteLine(number); } (string name, int age) GetPerson() (Alice, 30); // 元组 var person GetPerson(); Console.WriteLine($Name: {person.name}, Age: {person.age}); object obj Hello; if (obj is string str) // 模式匹配 { Console.WriteLine(str.Length); }2. .NET Core 2.xC# 7.17.3public static async Task Main(string[] args) // async Main { await Task.Delay(100); Console.WriteLine(Async Main done); } int number default; // 默认表达式 var tuple (name: Alice, age: 30); // 元组投影初始值 Console.WriteLine($Name: {tuple.name}, Age: {tuple.age});3. .NET Core 3.xC# 8.0string? nullableString null; // 可空引用类型 async IAsyncEnumerableint GetAsyncNumbers() { for (int i 0; i 5; i) { await Task.Delay(50); yield return i; } } await foreach (var n in GetAsyncNumbers()) { Console.WriteLine(n); } using var reader new StreamReader(file.txt); // using 声明 int[] arr {1, 2, 3, 4}; int last arr[^1]; // 索引操作 Console.WriteLine(last);二、统一平台时代.NET 5 到 .NET 104. .NET 5C# 9.0public record Person(string FirstName, string LastName); // 记录类型 // 顶级语句 Console.WriteLine(Hello, World from C# 9!); // 模式匹配增强 Person person new(Alice, Smith); if (person is { LastName: Smith }) { Console.WriteLine(Found Smith); }5. .NET 6C# 10.0// GlobalUsings.cs global using System; global using System.Collections.Generic; // Program.cs namespace MyApp; // 文件范围命名空间 public readonly record struct Point(int X, int Y); // 记录结构 const string name World; const string greeting $Hello, {name}!; // 常量插值字符串 Console.WriteLine(greeting);6. .NET 7C# 11.0string xml person nameAlice/name age30/age /person ; // 原始字符串字面量 public class Person { public required string FirstName { get; set; } public required string LastName { get; set; } } // 泛型数学 简化示例 static T AddT(T x, T y) where T : System.Numerics.INumberT x y; Console.WriteLine(Addint(3, 4));7. .NET 8C# 12.0// 主构造函数示例 public class Person(string name, int age) // C# 12 主构造函数 { public string Name name; public int Age age; } // 集合表达式示例 int[] array [1, 2, 3]; Listint list [1, 2, 3]; // 使用 spread 运算符 ..假设已支持 int[] other [4, 5]; int[] combined [1, 2, ..other, 6];8. .NET 9C# 13.0public void ProcessItems(params ReadOnlySpanint items) // params 集合增强 { foreach (var item in items) { Console.WriteLine(item); } } public class Example { private int _backing; public string Name { get; set field value ?? throw new ArgumentNullException(nameof(value)); // field 关键字 } }9. .NET 10C# 14.0发布时间.NET Core 1.0 于 2016-06-27 发布。意义标志 .NET 生态迈向真正跨平台、开源。C# 7.0 核心特性Out 变量内联声明元组 (tuple) 返回多个值模式匹配 (pattern matching)Demo 代码发布时间.NET Core 2.0 于 2017-08-14 发布。意义性能大幅提升支持 .NET Standard 2.0库生态更加丰富。C# 7.17.3 核心特性async Main 方法默认表达式 (default literal)元组投影初始值设定项tuple element name inferenceDemo 代码发布时间.NET Core 3.0 于 2019-09-23 发布。意义首次将 Windows 桌面WPF/WinForms纳入 .NET Core 支持并引入高性能结构如 Span。C# 8.0 核心特性可空引用类型 (nullable reference types)异步流 (async IAsyncEnumerable)模式和索引 (indices ranges)using 声明简化 (using var)Demo 代码发布时间.NET 5 于 2020-11-10 发布。意义标志 “.NET Framework” “.NET Core” 向统一 .NET 平台合并。C# 9.0 核心特性记录类型 (record)顶级语句 (top-level statements)模式匹配增强关系模式、逻辑模式Demo 代码发布时间.NET 6 于 2021-11-08 发布。意义LTS长期支持版推进统一平台愿景性能与开发体验进一步优化。C# 10.0 核心特性全局 using 指令 (global using)文件范围的命名空间 (file-scoped namespace)记录结构 (record struct)常量插值字符串 (constant interpolated strings)Demo 代码发布时间.NET 7 于 2022-11-08 发布。意义专注于性能提升、云原生支持、AOT(前向编译)改进。C# 11.0 核心特性原始字符串字面量 (raw string literals)列表模式 (list patterns)必需成员 (required members)泛型数学 (generic math)Demo 代码发布时间.NET 8于 2023-11 发布实际 2023-11-14意义LTS 版原生 AOT 正式版、进一步性能优化。C# 12.0 核心特性主构造函数 (primary constructors) 支持所有 class/struct。(Microsoft Learn)集合表达式 (collection expressions) 和扩展初始化语法。-还包括别名任意类型(using alias any type)、inline 数组等Demo 代码发布时间.NET 9 于 2024-11-12 发布。意义继续推进性能优化、智能化开发AI 集成等C# 13.0 核心特性你原文提及包括params 集合增强支持任意集合类型而不仅是数组field关键字 简化属性访问器中字段引用ref struct 实现接口部分属性和索引器增强说明经校验发现关于这些具体特性的官方资料仍较少、属于预览或提案阶段。建议在博客中注明 “预览/提案” 状态。Demo 代码按你原文发布时间.NET 10 目前为最新里程碑版本。意义进一步提升开发者生产力、性能表现。C# 14.0 核心特性扩展成员 (extension members)新增扩展属性、静态扩展成员、用户定义运算符等。(Microsoft Learn)空条件赋值 (null-conditional assignment)可以在左侧使用?.进行赋值。nameof支持未绑定泛型Lambda 参数修饰符简化