Visual Studio 2015の新機能をRTM版で見てみよう:特集:次期Visual Studioの全貌を探る(2/5 ページ)
Windows 10の登場と時を同じくして現れた最新バージョンのVisual Studioはどう変わったのか。その全体像を探っていこう。
言語の新機能
VS 2015では、プログラミング言語にも多くの新機能が盛り込まれている。主な項目を列挙すると、次の通りだ。
C# 6.0/Visual Basic 14
- nameof式(☆)
- Null条件演算子(☆)
- 文字列補間
- 式本体を持つ関数メンバー(C#のみ)(☆)
- 自動プロパティの初期化子(C#のみ、VBには以前から)(☆)
- インデックス付きメンバーと要素の初期化子(C#のみ)(*)
- 静的Usingステートメント(C#のみ)(*)
- 例外フィルター(C#のみ、VBには以前から)(*)
- catchブロック/finallyブロックでのawait呼び出し(C#のみ)(*)
- .NET Compiler Platform「Roslyn」採用
C++
- C++11のサポート強化とC++14/17の一部準拠(英語記事)
- 簡潔な「Range-Based For Loops」など、多くの新言語機能(英語記事、MSDN 日本語ドキュメント)
- std::exchange()など、多くの新ライブラリ機能
- ビルド高速化などの性能向上(英語記事)
- リファクタリングのサポート強化(英語記事)
- 「デバッガーの視覚化機能」や「ネイティブ メモリ診断」(英語記事)など、デバッグ機能の強化
TypeScript
上記のうち、末尾に「☆」印を付けたC#の機能は、次で解説されている。
- MSDNマガジン2014年10月号「強化された新しい C# 6.0」(この記事にある「プライマリコンストラクター」の導入はC# 6.0では見送られた)
また、末尾に「*」印を付けたC#の機能は、次で解説されている。
- MSDNマガジン2014年5月号「C# 6.0 言語プレビュー」(この記事にある「プライマリコンストラクター」と「宣言式」の導入はC# 6.0では見送られた)
VBの新機能については、次の特集記事もご覧いただきたい。
言語の新機能発表
C#言語のプログラムマネージャーであるTorgersen氏によるC#新機能の発表の様子。nameof式を説明しているところ。nameof演算子を使うと、実行時に変数の名前を取得できる。エラーメッセージやログに記録する文字列などを生成するときに便利だ。
Channel 9の「What's New In C# 6.0」に掲載された動画より(5分49秒付近)。
C#/Visual Basic(以降、VB)の新機能から、興味深いものを二つほど例を挙げて紹介しておこう。
Null条件演算子とは、変数がnull/Nothingだった場合に直ちにnull/Nothingを返すものだ。従来は処理を行う前にnull/Nothingをチェックする処理を記述していたが、Null条件演算子を使うと簡潔に記述できる(次のコード)。
// 従来の書き方
private static string ToUpper_OldStyle(string s)
{
if (s == null)
return null;
return s.ToUpper();
}
// Null条件演算子「?」を使った書き方
private static string ToUpper_NewStyle(string s)
{
return s?.ToUpper();
}
' 従来の書き方
Private Function ToUpper_OldStyle(s As String) As String
If (s Is Nothing) Then
Return Nothing
End If
Return s.ToUpper()
End Function
' Null条件演算子「?」を使った書き方
Private Function ToUpper_NewStyle(s As String) As String
Return s?.ToUpper()
End Function
従来の書き方と、Null条件演算子を使った書き方でメソッドを二つ記述した。どちらも同じ動作をする。
「文字列補間」(原語「String interpolation」)は、文字列をフォーマットする際に、文字列の中に変数を直接埋め込めるものだ(次のコード)。
int a = 3;
int b = 4;
int result = a * b;
// 従来の書き方
Console.WriteLine("{0}×{1}={2:0.0}", a, b, result);
// String interpolation
Console.WriteLine($"{a}×{b}={result:0.0}");
// 出力→"3×4=12.0"
Dim a As Integer = 3
Dim b As Integer = 4
Dim result As Integer = a * b
' 従来の書き方
Console.WriteLine("{0}×{1}={2:0.0}", a, b, result)
' String interpolation
Console.WriteLine($"{a}×{b}={result:0.0}")
' 出力→"3×4=12.0"
文字列の中に変数を埋め込める。書式指定も可能だ。
ちなみに、interpolationを補間と訳すのは、数学や統計学の世界である。
Copyright© Digital Advantage Corp. All Rights Reserved.