C Sharp
静的ローカル関数
null結合代入演算子
構造体の読み取り専用メンバー
using 宣言
ref構造体のDispose
ジェネリクスを含むアンマネージ型
式中のstackalloc
文字列補間のトークン順序の緩和
IAsyncEnumerable<T> インタフェースを返すことで、イテレータ構文と非同期構文の共存が可能になった。
await foreachによって非同期ストリームを列挙する。
switch式が追加された。 プロパティパターン、タプルパターン、位置指定パターンの追加により、再帰的なパターンマッチングが可能になった。
switch式
再帰パターン プロパティパターン タプルパターン 位置指定パターン
■カテゴリ / ■テンプレート
C#(シーシャープ)は、マイクロソフトが開発した、汎用のマルチパラダイムプログラミング言語である。C#は、Javaに似た構文を持ち、C++に比べて扱いやすく、プログラムの記述量も少なくて済む。また、C#は、.NET Framework上で動作することを前提として開発された言語であり、WindowsアプリケーションやWebアプリケーションの開発に適している。
マルチパラダイムをサポートする汎用高レベルプログラミング言語で、静的型付け、タイプセーフ、スコープ、命令型、宣言型、関数型、汎用型、オブジェクト指向(クラスベース)、コンポーネント指向のプログラミング分野を含んでいる。
共通言語基盤 (CLI) といった周辺技術も含め、マイクロソフトのフレームワークである「.NET Framework」の一部である。また、以前のVisual J++で「非互換なJava」をJavaに持ち込もうとしたマイクロソフトとは異なり、その多くの仕様を積極的に公開し、標準化機構に託して自由な利用を許す (ECMA-334,ISO/IEC 23270:2003,JIS X 3015) など、同社の姿勢の変化があらわれている。
設計はデンマークのアンダース・ヘルスバーグによる。
構文はC系言語(C,C++など)の影響を受けており、その他の要素には以前ヘルスバーグが所属していたボーランド設計のDelphiの影響が見受けられる。
Mainメソッドの戻り値として、Task型、Task(int)型が認められた。
Property Accessors プロパティのget もしくは setアクセサのどちらかにアクセス修飾子を指定することでアクセス制御が別個にできるようになった。次の例では、getアクセサはpublic、setアクセサはprivateである。
C#7.2で追加された仕様は以下の通り。