C# および Visual Basic に関する Visual Studio の最新機能

 

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。【元記事】 What’s New for C# and VB in Visual Studio 2016/4/2

 

先日開催された Build 2016 で、Visual Studio 2015 Update 2 および Visual Studio “15” Preview がリリースされました。いずれのリリースにも、すぐにご利用いただける言語関連の新機能が多数実装されています。両方の Visual Studio バージョンを同一マシンにインストールできるので、ぜひご自身の手で新機能をお試しください。

 

Visual Studio 2015 Update 2 C# および VB 関連の新機能

Visual Studio 2015 Update 2 では、既存の機能の強化と新たなリファクタリングが実施されました。開発チームでは開発者の生産性を高めることに重点を置き、ダウンタイムやマウスのクリック数、キー入力数を削減することで日常業務の効率を向上させました。

対話型機能の強化

Visual Studio Update 1 では、C# 対話型ウィンドウやコマンドライン REPL、csi が導入されました。Update 2 では対話型エクスペリエンスとエディターが組み合わせられ、コード スニペットをエディターから対話型ウィンドウに送って実行できるようになりました。また、プロジェクトのコンテキストに応じて対話型ウィンドウを初期化できるようになりました。

これらの機能を使用するには、次の手順に従います。

  • 下の図のようにエディターでコード スニペットを強調表示して右クリックし、[Execute in Interactive] を選択します (または Ctrl+E キーを 2 回押します)。
  • ソリューション エクスプローラーでプロジェクトを右クリックし、[Initialize Interactive] をクリックします。

clip_image002

 

Using/Imports の追加に関する改良

Using/Imports コマンド追加時のスペルミスに対する「あいまい」一致のサポートが強化され、ソリューションおよびメタデータ全体、また必要に応じて using/imports や project/metadata の参照から検索できるようになりました。

下の図は、「WebClient」を「WebCleint」と誤って入力した場合にどのように機能するかを示したものです。ここでは入力名を修正する必要があり (2 文字が誤っています)、System.Net の using を追加する必要があります。

clip_image004

 

リファクタリング

リファクタリングに関しては、次の 2 つの機能強化が実施されました。

  • メソッドの同期
  • null 条件演算子によるデリゲート呼び出し

clip_image006

 

Roslyn 機能

Roslyn コンパイラ (英語) に新しいコンパイラ フラグが 2 つ追加されました。

  • deterministic: このスイッチを使用すると、同一の入力に対してバイト単位で同一の出力がビルドされます。従来は MVID や PDB の ID、タイムスタンプなどの PE エントリはビルドごとに違っていましたが、これが入力に基づいて確定的に計算されるようになります。
  • publicSign: 遅延署名と類似する新しい署名メソッドを、評価のスキップ エントリをマシンに追加しなくても使用できるようになります。これにより、バイナリに公開鍵のみを持つ公開署名を適用したり、開発やテストに必要なコンテキストを読み込んだりすることができます。これは、OSS 署名 (英語) という名前でも呼ばれています。

 

Visual Studio 15 Preview の最新情報

Build では、Visual Studio “15” の初回リリースも発表されました。現時点での最新版であり、今後さらに機能の変更や新機能の追加を予定しています。次の大規模リリースに向けて、ぜひ皆様のご意見をお聞かせください。

 

C# 7 プロトタイプの試用

C# 7 の言語設計の指針は「データの取り扱い」です。C# 7 の最終的な機能セットはまだ言語設計委員会が策定中ですが、この言語のプロトタイプの機能は Visual Studio “15” Preview (英語) で試用できます。

この言語のプロトタイプにアクセスするには、ソリューション エクスプローラーでプロジェクトを右クリックして [Properties]、[Build] の順に選択し、[Conditional compilation symbols] テキスト ボックスで「__DEMO__」と入力します。これで、ローカル関数、桁区切り記号、バイナリ リテラル、ref return、パターン マッチなどの機能のプレビューを使用できるようになります。

clip_image008 なお、ref return の IntelliSense に関して既知の問題が確認されていますが、これは下記の方法で回避できます。

  • ソリューション エクスプローラーでプロジェクトを右クリックし、[Unload Project] を選択します。
  • アンロード後にプロジェクトを右クリックし、[Edit csproj] を選択します。
  • <AssemblyName> の下の最初のプロパティ グループに <Features>refLocalsAndReturns</Features> を追加します。
  • XML スキーマの警告が表示されても、すべて無視します。

clip_image010

 

カスタム コード スタイルの強制適用

皆様が待ち望んでいた機能が導入されるまで、あとわずかです。Visual Studio “15” Preview では、カスタム コード スタイルを強制適用する機能の初期プロトタイプを試用できますので、ぜひ使った感想をお寄せください。今回新たにサポートされたスタイル オプションは、[Tools]、[Options]、[C#]、[Code Style] の順にクリックすると見つけられます。[General] オプションでは「this.」、定義済みの型、および「var」の個人設定を変更できます。今回、この「var」の個人設定で強制適用の重要度を制御できるようになりました。たとえば、「var」を組み込み済みの型として明示的に宣言し、この書式の違反が検出されるとエディターでエラーが表示されるように設定できます。

さらに、メソッドをパスカル ケースで記述することを必須にするなどの命名規則を追加できます。

clip_image012

 

ご意見をお寄せください

昨年は皆様からたいへん多くのフィードバックをお寄せいただきました。この場を借りて改めて感謝申し上げます。いただいたご意見は私たちの開発作業にとってたいへん大きな意味があるもので、貴重な財産として扱わせていただいています。今後も引き続きご協力のほどよろしくお願いいたします。オープン ソースの Roslyn プロジェクトに対しては、言語に関連するさまざまなフィードバックが寄せられています。GitHub にはさまざまな言語コミュニティが存在しており、Roslyn オープン ソース プロジェクト (英語) 関連の開発に貢献いただいています。

フィードバック方法は以下のとおりです。

いつも Visual Studio をご利用いただきありがとうございます。今後のアプリ作成にもぜひご活用いただけますと幸いです。

 

ではまた。
Kasey Uhlenhuth (マネージ言語チーム、プログラム マネージャー)