.NET 6 の ArgumentNullException.ThrowIfNull と .NET 7・8 で追加された関連スローヘルパーを整理します。
C# の Named Arguments(名前付き引数)の構文・ルール・Optional Arguments との組み合わせを整理します。
C# のメソッドパラメータ修飾子 out・ref・in・params の動作と使い所を整理します。
C# 6.0 の Expression-Bodied メンバ、C# 7.0 のローカル関数、C# 8.0 の static ローカル関数を一か所にまとめて整理します。
C# 8.0 で導入された System.Range は、コレクションの開始・終了インデックスで部分範囲を表す型です。.. 演算子と ^ 演算子を組み合わせてスライス操作を直感的に書けます。
C# 8.0 で導入された System.Index は、コレクションの先頭または末尾からの位置を表す型です。^ 演算子を使うと末尾から数えたインデックスを簡潔に書けます。
C# の switch 文では goto case と goto default を使って別の case セクションへ制御を移せます。この構文は C# 1.0 から存在します。
C# 7.0 で switch 文にパターンマッチングが導入され、型パターンや when 句が使えるようになりました。C# 9.0 ではさらに関係パターンや論理パターンが加わりました。本記事では switch 文における変遷を順に整理します。
C# 7.0 で導入された is パターンマッチングは、9.0 で not / and / or などの論理パターンが加わり大きく進化しました。本記事では if 文で使えるパターンを 7.0 から 9.0 まで順に整理します。
C# の checked キーワードを使うと、整数演算がオーバーフローしたときに OverflowException をスローさせることができます。本記事では checked / unchecked の動作の違い、checked ブロック、コンパイラオプションまで整理します。