Microsoft、C#の最新版である「C# 7.0」の新機能を発表

現地時間2017年3月9日にMicrosoftの「.NET エンジニアリングチーム」は、「New Features in C# 7.0|.NET Blog」にて、プログラミング言語であるC#の最新版「C# 7.0」の最新機能を発表しました。
C#7.0には多数の新機能が追加され、データ消費、コードの簡素化、およびパフォーマンスに重点を置いているようだ。
最大の特徴は、複数の結果を簡単に作成できるタプルと 、データの形状を条件とするコードを単純化するパターンマッチングとなっております。
同社はVisual Studio 2017と合わせて今回の情報を公開しており、「C# 7.0」を使ってVisual Studio 2017をアピールしていくようだ。
C# 7.0
「C# 7.0」では、データコンサンプションへの注力やコードのシンプル化、パフォーマンスの向上などが新たに加わった。
- Out変数の導入(従来までは、引数で渡す前に変数を宣言する必要が無くなり、引数に指定する段階で変数を定義することが可能になった)
- 変数が特定の型を持っているかどうかを判断する時に利用できるパターンの導入され、isやswitchなどでパターンを指定した判定が可能になる(使い方としてはOut変数とよく似た見た目になる)
- タプル型とタプルリテラルの導入
- タプルを複数の値に分割するデコンストラクタデクラレーションの導入
- ローカル関数の導入
- 数値リテラルにおいて区切り文字として_の使用を許可
- 参照返値の追加
- 非同期メソッドにおける返値の対象を拡張
- throwエクスプレッションの利用できる場所を拡張
タプルとは
タプルとは、「(int x, int y)」のように2つの値を並べた書き方をしており、「名前のない型」を作る機能となっております。
例
class Sample { private (int x, int y) value; public (int x, int y) GetValue() => value; }
注意しなけばならないのは、「new演算子」や「is演算子」、「usingディレクティブ」に関しては、タプルに扱えないようです。
仮に記載ししまった場合は、コンパイルエラー扱いになるようです。
ブログ内で解説に用いられているコードは、C#言語デザインのGitHubサイトにて公開されており、設計ノートやディスカッションをこちらで閲覧することができるようです。
お気軽にお書きください