C#/.NET 8の新機能を分かりやすく解説

プログラミング言語

C#は.NETエコシステムの中心となる言語で、Web・デスクトップ・モバイル・ゲームまで幅広い用途に使えます。.NET 8では性能・記法・APIに大きな改善が入りました。本記事では、C# / .NET 8の新機能をわかりやすく解説します。

.NET 8の概要

.NET 8はLTS(長期サポート)版で、Microsoftが本番運用向けに推奨するバージョンです。AOTコンパイル・JITの強化・ライブラリ刷新により、パフォーマンスが大きく向上しています。

Native AOT

Ahead-Of-Timeコンパイルが安定化し、コンソールアプリやサーバーレス関数で起動時間が大幅に短縮されました。Lambda等のサーバーレスでC#を採用しやすくなっています。

dotnet publish -r linux-x64 -c Release --self-contained
# csprojに true

Primary Constructor

public class User(string name, int age)
{
    public string Name => name;
    public int Age => age;
}

クラスでも主コンストラクタを直接定義できるようになり、ボイラープレートが削減されます。

Collection Expressions

int[] a = [1, 2, 3];
List<string> b = ["a", "b"];
int[] combined = [..a, 4, 5];

パターンマッチの強化

string Describe(object obj) => obj switch
{
    int n when n > 0 => $"positive: {n}",
    int n => $"non-positive: {n}",
    string { Length: 0 } => "empty string",
    string s => $"string: {s}",
    _ => "other",
};

Minimal API(ASP.NET Core)

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello .NET 8");
app.MapGet("/users/{id:int}", (int id) => new { Id = id, Name = "A" });

app.Run();

主な用途

  • ASP.NET CoreによるWeb API・サイト
  • Blazor(C#で書くWebUI)
  • MAUI(クロスプラットフォームアプリ)
  • Unity(ゲーム開発)
  • WindowsデスクトップアプリWPF/WinUI

まとめ

.NET 8 / C#はNative AOT・Primary Constructor・Collection Expressions・Minimal APIなどモダンな改善が満載です。エンタープライズの安定性とモダンな書き心地を両立できる選択肢として、今後も大規模システム・サーバーレス両面で存在感が高まります。