Visual Studio 2015 Update1 CTPと
CSI
石坂@OPCDIARY http://opcdiary.net
1
自己紹介
 伊豆の函南町から来ました。
 牛乳と西瓜が有名
 プラント向けシステムのSEです。
 最近までよく上越に仕事で来てい
ました。
 今年は富山のお仕事です。
 続きはWEBで
 http://opcdiary.net
2
VisualStudio 2015 Update1
CTP
 10/9(JPT)にリリースされました
 バグ修正&機能追加
 Windows Store向けコンパイルオプション(/BigObj)の追加
 C# Interactive Window
 C#のREPL環境
 VSOでのプルリクエストがTeam Explorerで作成可能に
 など
3
C# Interactive Window
 VisualStudio 2015内のサブウインドウ
 C#のREPL(Read–eval–print loop)環境
 C#のコードをスクリプトとして実行できる
 C#のコードを対話的に実行できる
 外部のアセンブリを参照可能
 外部のスクリプトを読み込むことも可能
 インテリセンスが使える
 Windowの中でawaitをちゃんと待つ
 IEnumerableの中身は表示してくれる
 イミディエイトウインドウのようにすぐにIDEやデバッ
ガの操作ができる訳ではなさそう
 基本的にコードの確認用か?
4
Demo
C# INTERACTIVE WINDOW
5
対話環境のコマンド
 C#のディレクティブを使って実現している
 #help
 ヘルプ
 #r
 アセンブリへのリファレンスの追加
 #r "path/MyAssembly.dll“
 #r "System.Collections.Generic“
 #load
 スクリプト(.csx)の読込
 #clear or #cls
 画面消去
 #reset
 対話環境のリセット
•#r "path/MyAssembly.dll"
6
CSIコマンド
 VS2015の開発者用コンソールから起動する事が出来る
 インテリセンス等も無いのでつらい
 まだ使えるって言う感じのツールにはなっていない
7
Demo
CSIコマンド
8
コード例
9
Linq
> using System.Collections.Generic;
> List<int> mylist = new List<int> { 4, 7, 2, 5, 0, 6 };
mylist List<int>(6) { 4, 7, 2, 5, 0, 6 }
> mylist.Where(x => x % 2 == 0)
Enumerable.WhereListIterator<int> { 4, 2, 0, 6 }
> mylist.Average()
4
>
10
async/await
> using System.Threading.Tasks;
> async Task<DateTime> CountToAsync(int num = 10)
. {
. for (int i = 0; i < num; i++)
. {
. await Task.Delay(TimeSpan.FromSeconds(1));
. }
.
. return DateTime.Now;
. }
> await CountToAsync()
[10/7/2015 2:38:24 PM]
>
11
その他
 トップレベルに設定した変数は全てpublic扱い
 変数の中身を見たいときには、変数名をタイプしてリ
ターン
12
CSharpInteractive.rsp
 VSでInteractive Window起動時に読み込まれている設定
ファイル
 以下のアセンブリが読み込まれるように設定されている
 System
 System.Core
 Microsoft.CSharp
 System.Data
 System.Data.DataSetExtensions
 System.Xml
 System.Xml.Linq
13
SeedUsings.csx
 CSharpInteractive.rspから呼び出されるCSスクリプト
 以下がその内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
14
参考資料
 Interactive Window - GitHub Roslyn Wiki page
 https://github.com/dotnet/roslyn/wiki/Interactive-
Window
15

Visual studio 2015 update1 ctpとcsi