int age = 25; string name = "Tom"; Console.WriteLine($"姓名: {name}, 年齡: {age}");
5?? 模式匹配 switch
讓分支邏輯更清晰:
object obj = 123; switch (obj) { caseint i when i > 100: Console.WriteLine($"大數(shù)字: {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?? 解構(gòu)賦值
快速拆解元組或?qū)ο螅?/span>
(string name, int age) user = ("Alice", 20); var (n, a) = user; Console.WriteLine($"{n} - {a}"); // Alice - 20
8?? Span 高性能切片
避免不必要的數(shù)組或字符串復(fù)制:
var data = "Hello World".AsSpan(); var slice = data.Slice(0, 5); Console.WriteLine(slice.ToString()); // Hello
9?? LINQ 讓集合操作更優(yōu)雅
一行代碼搞定篩選與投影:
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+)
輕松定義數(shù)據(jù)對象,帶自動生成的 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 }