特集
» 2015年08月13日 05時00分 公開

特集:次期Visual Studioの全貌を探る:Visual Studio 2015の新機能をRTM版で見てみよう (2/5)

[山本康彦,BluewaterSoft/Microsoft MVP for Windows Platform Development]

言語の新機能

 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++

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条件演算子を使ったコード例(上:C#、下:VB)
従来の書き方と、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"

String interpolationを使うコード例(上:C#、下:VB)
文字列の中に変数を埋め込める。書式指定も可能だ。
ちなみに、interpolationを補間と訳すのは、数学や統計学の世界である。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。