はじめに
C#は、2024年11月に.NET 9のリリースとともにバージョン13となりました。C#は、.NETの標準プログラミング言語として絶え間ない進化を続けており、このバージョン13にも便利で使い勝手のよい機能が多数実装され、改良されました。本連載では、このC#の最新バージョンにフォーカスし、その新機能を紹介していきます。また、最新バージョン以前の機能にも関連の深いものについて言及することで、新機能を線として理解できることも意識します。
機能 | 概要 |
paramsコレクション | params(可変長引数)にコレクション式で使える型を利用可能に |
新しいロックセマンティクス | lockステートメントでLockオブジェクトを特別扱いするように |
新しいエスケープシーケンス\e | エスケープ文字(\x1b)を表すエスケープシーケンス\eを利用可能に |
メソッドグループの自然型 | デリゲートの自然型の決定時にインスタンスメソッドを優先的に見つけるように |
暗黙的なインデックスアクセス | 末尾からのインデックス演算子(^)がオブジェクト初期化子式中で使えるように |
イテレータと非同期メソッド内のrefとunsafe | refローカル変数、ref構造体の変数、unsafeブロックを、イテレータと非同期メソッド内で利用可能に |
allows ref struct | ジェネリクスの型制約にref構造体を指定できるように |
partialなプロパティとインデクサ | プロパティとインデクサにもpartial指定が可能に |
OverloadResolutionPriority属性 | オーバロード関数の優先順位をOverloadResolutionPriority属性により開発者が指定可能に |
対象読者
- C#の最新バージョンの機能を把握したい方
- C#の経験者で、C#に改めて入門したい方
- プログラミング言語の最新パラダイムに関心のある方
必要な環境
本記事のサンプルコードは、以下の環境で動作を確認しています。
-
macOS Sonoma
- .NET 9 SDK(9.0.101)
[NOTE]サンプルの実行
掲載サンプルは、基本的にプロジェクトのProgram.csファイルに記述しています。簡略化のために、C# 9より使用可能になったトップレベルステートメントの記法を用いています。このため、クラスなどの定義がソースコードの後方に配置されます。また、.NET 9環境でのみ動作しますので、.NET 9環境を用意した上で、プロジェクトフォルダでdotnet runコマンドで実行してください。