int age = 25; string name = "Tom"; Console.WriteLine($"姓名: {name}, 年龄: {age}");
5️⃣ 模式匹配 switch
让分支逻辑更清晰:
object obj = 123; switch (obj) { caseint i when i > 100: Console.WriteLine($"大数字: {i}"); break; casestring s: Console.WriteLine($"字符串: {s}"); break; default: Console.WriteLine("其他类型"); break; }
6️⃣ 表达式体成员
减少样板代码,写法更简洁:
classUser { publicstring Name { get; } publicUser(string name) => Name = name; publicoverridestringToString() => $"Net分享: {Name}"; }
7️⃣ 解构赋值
快速拆解元组或对象:
(string name, int age) user = ("Alice", 20); var (n, a) = user; Console.WriteLine($"{n} - {a}"); // Alice - 20
8️⃣ Span 高性能切片
避免不必要的数组或字符串复制:
var data = "Hello World".AsSpan(); var slice = data.Slice(0, 5); Console.WriteLine(slice.ToString()); // Hello
9️⃣ LINQ 让集合操作更优雅
一行代码搞定筛选与投影:
var numbers = new[] { 1, 2, 3, 4, 5 }; var result = numbers.Where(n => n % 2 == 0).Select(n => n * n); Console.WriteLine(string.Join(",", result)); // 4,16
🔟 record 定义不可变对象(C# 9+)
轻松定义数据对象,带自动生成的 ToString 和比较逻辑:
publicrecordPerson(string Name, int Age); var p1 = new Person("Tom", 25); var p2 = p1 with { Age = 30 }; Console.WriteLine(p1); // Person { Name = Tom, Age = 25 } Console.WriteLine(p2); // Person { Name = Tom, Age = 30 }