概要
VisualStudioにはInteractive機能というC#の対話的実行環境:REPL(Read-eval-print loop)があります。
自分で作ったプログラムを簡単にテストしたい時、Interactive機能にプロジェクトを読み込ませると便利です。
方法
.NET Frameworkのプロジェクトを作成します。.NET FrameworkならWPFやConsoleでも良いですが、UWPや.NET Core, .NET Standardプロジェクトは読み込めないようです。
例としてこんなPersonクラスを作ります。
Person.cs
public class Person
{
public string Name { get; set; } = "TARO";
}
ソリューションエクスプローラーのプロジェクトを右クリックして「プロジェクトでインタラクティブを初期化」を選びます。
すると[C# Inteacrive(32-bit)]というウインドウが出てきて、色々読み込まれているのが分かります。
interactiveウインドウ_プロジェクト読み込み後
> #reset 32
実行エンジンをリセットしています。
'CSharpInteractive.rsp' からコンテキストを読み込んでいます。
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Core.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Xml.Linq.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Data.DataSetExtensions.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\Microsoft.CSharp.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Data.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Net.Http.dll"
> #r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\System.Xml.dll"
> #r "ConsoleAppFrame.exe"
> using ConsoleAppFrame;
>
続けてその場で、自作プロジェクト内のクラスなどを呼び出すことができます。
interactive実行結果
> var p = new Person();
> p.Name
"TARO" //実行結果が出力
>
ちなみにWPFのウインドウをすぐ表示してプロパティを変更などもできます。
interactive実行結果
> using WpfApp1;
> using System.Windows.Media;
> var m = new MainWindow();
> m.Show(); //MainWindowが表示される
> m.Background = new SolidColorBrush(Colors.Purple); //ウインドウの背景色が紫色に変わる
>
感想
ちょっとした実験とかをするのに便利。
実験用のコンソールアプリとか、実験用のブランチとかをわざわざ作る必要がなくなった。
実はVisualStudio2015ぐらいからあったらしい。
些末なことですが、、、
表記が揺れているのが気になる。
参考
環境
VisualStudio2017
.NET Core2.1
.NET Framework 4.7.1
C#7.1