.NET 8 新特性指南

.NET 8 是微软的最新 LTS(长期支持)版本,带来了许多令人兴奋的新特性和性能改进。

1. 记录结构体(Record Structs)

public record struct Point(int X, int Y);

var p1 = new Point(1, 2);
var p2 = new Point(1, 2);

Console.WriteLine(p1 == p2); // True

2. 原始字符串字面量

var json = """
    {
      "name": "some value",
      "age": 30
    }
    """;

Console.WriteLine(json);

3. 可选的数组范围索引

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

var slice = numbers[1..3];  // [2, 3]
var fromStart = numbers[..3];  // [1, 2, 3]

4. 性能改进

Span 优化

ReadOnlySpan<char> text = "Hello, World!";
var prefix = text[..5]; // "Hello"

字符串插值优化

string name = "Value";
string message = $"Hello, {name}!"; // 编译时优化

5. AOT 编译

.NET 8 增强了 AOT(Ahead-of-Time)编译能力:

dotnet publish -c Release -r linux-x64 --self-contained -p:PublishAot=true

优点:

  • 更快的启动时间
  • 更小的体积
  • 保护代码不被反编译

6. 内置容器支持

var weather = new WeatherService();
var container = new ContainerBuilder()
    .AddSingleton(sp => weather)
    .Build();

var service = container.GetRequiredService<WeatherService>();

7. DateOnly 和 TimeOnly

DateOnly date = new(2026, 2, 12);
TimeOnly time = new(14, 30, 0);

Console.WriteLine($"{date} {time}");

8. 性能基准

操作 .NET 7 .NET 8 提升
JSON 反序列化 100ms 85ms +15%
LINQ 查询 50ms 42ms +16%
字符串处理 80ms 68ms +15%

总结

.NET 8 是一次重要的更新,不仅带来了语言层面的改进,还有显著的性能提升。

如果你还在使用 .NET 6 或更早版本,强烈建议升级到 .NET 8!


参考链接