++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Visual Studio CTP 5 での C# 6.0

leave a comment »

http://blogs.msdn.com/b/visualstudio/archive/2015/01/16/visual-studio-2015-cpt-5-now-available.aspx

Visual Studio 2015 が CTP 5 になったそうです。

CTPも5個目かー。細かくプレビュー出すなぁ。早い段階からいろいろ試せるのはありがたい話ですが。

さて、で、CTP 5 で C# コンパイラーも更新されました。

「仕様が変わること決定済みだけど、2014/11プレビューでは変更前のままなんだ」といわれ続けていた機能が、ちゃんと正式仕様どおりの実装に。

vs2015ctp5

  • クラスの静的メソッドインポート用の構文が、using (名前空間と一緒) → using static (static を追加)
  • string interpolation の構文が “\{x}” (”” の中に \) → $”{x}” (“” の前に $)
  • (CTP 5でもまだなさそう)string interpolation は、IFormattable に代入するときは直接の文字列化じゃなくて、いったん IFormattable を作るように
  • nameof の中にある程度式を書けるように

using staticは、staticを付けないとどういうことになるかというと…

こんな感じ。名前空間と同名のクラスを後から足してコード壊せる。というのを報告入れたら文法変わりました。

string interpolation と nameof は元々最近仕様が固まったもの。

nameof(MethodName) で、オーバーロードの弁別(2つオーバーロードがあるうちの、片方だけリネームかけた時にリファクタリングで追従できるか)については、結局、「できない」方向でいったん仕様を固めた見たいです(わかりやすい文法にならなくて前々から悩んでたけども)。なので、nameof は、現状、ローカル変数、クラス名、引数名、プロパティ名に対してはリファクタリングが効くものの、メソッドには効きません(ないメソッドを参照した時にコンパイルエラーにはなるので、ただの文字列よりはだいぶ有効)。

広告

Written by ufcpp

2015年1月17日 @ 20:33

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。