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などモダンな改善が満載です。エンタープライズの安定性とモダンな書き心地を両立できる選択肢として、今後も大規模システム・サーバーレス両面で存在感が高まります。