はじめに
C#は、この11月に.NET 10のリリースとともにバージョン14となりました。C#は、.NETの標準プログラミング言語として絶え間ない進化を続けており、このバージョン14にも便利で使い勝手のよい機能が多数実装、改良されました。本連載では、このC#の最新バージョンにフォーカスし、その新機能を紹介していきます。また、最新バージョン以前の機能にも関連の深いものについて言及することで、新機能を線として理解できることも意識します。
| 機能 | 概要 |
|---|---|
| 拡張メンバー | extensionブロックにより、拡張メソッドに加えて静的メソッド、インスタンスプロパティ、静的プロパティが拡張メンバーとして使えるように |
| null条件代入 | null条件メンバーアクセス演算子(?.)とnull条件要素アクセス演算子(?[])が代入演算子または複合代入演算子の左辺で使用できるように |
| バインドされていないジェネリック型のnameof | nameof演算子がバインドされていないジェネリック型に対しても名前を返すように |
| 第1級に昇格したSpan |
Span |
| ラムダ引数の修飾子 | 引数の型を指定せずにラムダ式引数にscoped、ref、in、out、ref readonlyなどの修飾子を追加できるように |
| fieldキーワード | バッキングフィールドの宣言なしでプロパティアクセサ本体を記述できるように |
| 部分コンストラクタと部分イベント | インスタンスコンストラクタとイベントを部分メンバーとして宣言できるように |
| ユーザー定義複合代入演算子 | ユーザー定義の複合代入演算子が使えるように |
対象読者
- C#の最新バージョンの機能を把握したい方
- C#の経験者で、C#に改めて入門したい方
- プログラミング言語の最新パラダイムに関心のある方
必要な環境
本記事のサンプルコードは、以下の環境で動作を確認しています。
-
macOS Sequoia
- .NET 10 SDK(10.0.100)
[NOTE]サンプルの実行
掲載サンプルは、基本的にプロジェクトのProgram.csファイルに記述しています。簡略化のために、C# 9より使用可能になったトップレベルステートメントの記法を用いています。このため、クラスなどの定義がソースコードの後方に配置されます。また、.NET 10環境でのみ動作するので、.NET 10環境を用意した上で、プロジェクトフォルダでdotnet runコマンドで実行してください。
