LoginSignup
12
6

More than 5 years have passed since last update.

VisualStudioで自分のプログラムを対話的に実行する

Posted at

概要

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";
}

ソリューションエクスプローラーのプロジェクトを右クリックして「プロジェクトでインタラクティブを初期化」を選びます。

スクリーンショット 2018-08-24 22.36.05.png

すると[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ぐらいからあったらしい。

些末なことですが、、、

表記が揺れているのが気になる。

スクリーンショット 2018-08-24 22.36.05 - コピー.png
スクリーンショット 2018-08-24 23.17.30.png
スクリーンショット 2018-08-24 23.19.06.png

参考

環境

VisualStudio2017
.NET Core2.1
.NET Framework 4.7.1
C#7.1

12
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6