読者です 読者をやめる 読者になる 読者になる

Visual Studio 2015 (C#6.0)

初めまして和朗です。

開発PCはWindows 8.1です。かなり操作に戸惑っています。8はタッチパネルでないと使いずらいですね。近いうちにWindows 10にアップグレード予定です。

Visual Studio 2015」を軽くレビューしたいと思います。クリーンな環境を手軽に用意できるためAWSを利用しました。

VS2015 ダウンロード&インストール

Downloads | Visual Studio

いつも通り1-2時間コースです。 ※2回目インストールしたときは、30分ほどで終わりました。

新機能

クロスプラットフォーム

  1. iOSAndroidのアプリ開発
    スマホアプリができるようになっているようなのですが、有料の「Xamarin」をインストールしていないと利用できないようなので、諦めます。

  2. Visual Studio Emulator for Android
    VSの新機能ではありませんが、VSインストールと同時にインストールできます。iPhoneエミュレータAppleの規約でWindows上では利用できません。なので、Androidを試してみました。

    VS2015 on Windows Server 2012(日本語)
    エミュレータ起動時にリモートデスクトップ接続が切れてしまい、調べるとCPUが上がりっぱなしになった状態で固まっていたようです。 結局、インスタンスを再構築するはめになりました。

    VS2015 on Windows Server 2012(英語)
    日本語OSよりは先に進みましたが、エラーメッセージが表示され起動できない。

結局、AndroidエミュレータAWS上で試せませんでした。 「Xamarin」のアカウントを持っていないとC#での開発も行えないので早くVSがXamarinを取り込んでliveIDだけで利用できるようになって欲しいですね。

C#6.0

細かいですが、短くて見やすいコードになりそうな機能が入ってますね。 気に入ったもののみピックアップしました。

  1. Auto-property enhancements
    プロパティの初期化がプロパティの宣言と同列に記述できる
  2. Getter-only auto properties
    コンストラクタの引数でgetterのみのPropertyが初期化できる
    f:id:teradak:20150724105237p:plain これは便利!

  3. Expression bodied function members
    ラムダ式メソッドやプロパティがさくっと作れちゃう! f:id:teradak:20150724110751p:plain ラムダ式を乱用すると読みにくいコードになってしまいがちだがこれらを利用すると見やすく改善できるような気がします。

  4. using static
    スタティックメソッドや列挙体、構造体をクラス名を記述することなく利用できる。 f:id:teradak:20150724111945p:plain やりすぎると何をやっているのか分からなくなりそう。
    しかし、便利!

  5. Null-conditional operators
    「?.」を利用して対象がNullでなければ、処理結果を返す。 f:id:teradak:20150724113023p:plain 無駄と思えるNullチェックや不要なネストがなくなりそう!

  6. String interpolation
    置換変数を直接記述できるようになった。 f:id:teradak:20150724131624p:plain 変数はしっかりコンパイルチェックがかかる!複雑なフォーマットになればなるほど力を発揮しそう!

  7. nameof operators
    変数名を文字列として取得できる。 f:id:teradak:20150724132802p:plain あまり使わなさそうだが、エラー発生時のログ出力に便利そう。

  8. Exception filters
    Exceptionの内容に応じてcatch句を判定できる。VBでは以前からあった機能なようです。 f:id:teradak:20150724134234p:plain エラーの判定とともに、ログ出力までできる。StackTraceには影響がないというのは便利!

まとめ

VS2015とは直接関係のないC#6.0はコードの見やすさが改善されケアレスミスによるデグレが減りそうです。 VS2015で気になったのはメソッドなどの宣言行の上に「1reference」という文字が表示され行間が広がってしまってちょっと違和感があります。慣れの問題ですけどね。