C#インタラクティブウィンドウはコードと対話できますか?


160

Visual Studio 2015以降では、「C#インタラクティブウィンドウ」を開いてコードを実行できます。

> 5 + 3
8

それはかわいいです。次に、コードを操作するにはどうすればよいですか—クラス プロジェクトを開いていると仮定します。

> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)

Roslynはインタラクティブなウィンドウではありません。.NETコンパイラAPIです。あなたは物事を見逃していないのですか?
Tigran 2012年


私は常にこのために標準のイミディエイトウィンドウを使用します-独自のタイプでも動作します。
Polyfun 2012年

2
「標準の即時ウィンドウ」とは何ですか?
パニック大佐

@MattHickford詳細については、更新された回答を参照してください
ナマケモノ

回答:


220

Visual Studio 2015を使用する場合:

[ビュー]> [その他のウィンドウ]> [C#インタラクティブ]に移動して、インタラクティブウィンドウを開くことができます。

次に、プロジェクトを右クリックして、コンテキストメニューからInitialize Interactive with Projectを実行します。


古いバージョンの場合:

コードでC#インタラクティブウィンドウを使用するには、まずコードをコンパイルしてから、#r次のようなコマンドで結果のアセンブリへの参照を追加します。

C#コマンドプロンプト


次のように、イミディエイトウィンドウを使用してコードを操作することもできます。

イミディエイトウィンドウ


1
ありがとう。C#のインタラクティブウィンドウの方が好きです。即時ウィンドウは不親切で、オートコンプリートはありません。Console.WriteLine("hey") The name 'Console' does not exist in the current context System.Console.WriteLine("hey") Expression has been evaluated and has no value
パニック大佐

-1問題は、roslynの一部である新しいC#REPL(インタラクティブウィンドウ)の使用に関するものです。開発中のF#Interactive Windowを使用するDon Symeのc9ビデオをご覧ください。いい物。channel9.msdn.com/Series/...
ジョンDhom

25
@JohnDhomなぜ反対票か。私の回答は、C#の対話型ウィンドウを介して独自のコードを操作する方法を完全に示しています(それを示すスクリーンショットもある)。
ナマケモノ

8
.Net Coreプロジェクトでは、コンテキストメニュー項目は表示されないため、#rメソッドが必要です。この答えはそのために最適です。
ライアン

2
私は1つのより有用ヒントを追加したい:あなたは、いくつかの実行時のものを使用したい場合、あなたは簡単にこのディレクティブを追加することができます:#r "System.Runtime"
mostafa8026

70

独自のプロジェクトのクラスを使用できます。
ソリューションを右クリックして、[プロジェクトからインタラクティブをリセット]を選択します。

さらに詳しい情報が必要な場合は、ソースをご覧ください
。Roslynに付属のC#インタラクティブウィンドウの使用–パート2


1
ありがとうございます。残念ながら、説明どおりに機能しません。どのプロジェクトを試しても、「無効なアセンブリ名」というエラーアラートがポップアップ表示されます。イライラして、それはそれが話しているアセンブリを説明しません。ソフトウェアが壊れていると思います。
大佐パニック

@MattHickford:プロジェクトはどのタイプのプロジェクトですか?単純なConsoleApplicationsとClassLibraries以外のテストはあまり行っていません。
Kevin Pilch

ケビンに尋ねてくれてありがとう。いくつかの小さなプロジェクトで「プロジェクトからインタラクティブにリセット」を試してみましたが、正しく機能しました。確実に機能しないプロジェクトは、多くの参照を持つより複雑なライブラリとアプリケーションです。
大佐パニック

25
これはVS 2015には適用されなくなりました。コンテキストメニューコマンドがなくなり#r、プロジェクトアセンブリが見つかりません。何か案は?
ygoe

18
VS 2015 Update 3では、ソリューション(ソリューションエクスプローラー)でプロジェクトを右クリックすると、「プロジェクトとインタラクティブな初期化」が行われます。
Andrei Pana

44

@ Botz3000の回答からの更新です。

検索するコマンドは、「プロジェクトでインタラクティブを初期化する」と呼ばれるようになりました。

ここに画像の説明を入力してください

また、C#インタラクティブウィンドウが表示されなかった場合、このコマンドが見つからなかったことにも注意してください。


11
いいえ、ちがいます。スクリーンショットが指摘しているのとまったく同じ場所にあります。
トム

3
@Tomは、使用しているプロジェクトのタイプに基づいて機能するか機能しないようです。見つけたときに使用していたプロジェクトのタイプは何でしたか?
ルークハンマー

@WizardHammerクラスライブラリ
トム

10
これをNetStandardライブラリで動作させようとしていますが、オプションがコンテキストメニューにありません
ChadT

15

この機能はVS 2019 for .Net Coreプロジェクトではまだサポートされていないことに注意してください。

あなたはオプションを見つけられず、これはこの回答で強調されている既知の問題です ' Visual Studio 2019の。

回避策は、上記の回答にあるように、#rコマンド(#r "Path / MyDll.dll")を使用してアセンブリを手動でロードすることです。


11

「Interactive with Project with Project」がクールであることに完全に同意します。

私のアプローチは、ライブラリと使用にクラスをプッシュすることです // css_reference C#のスクリプトまたはで#R C#インタラクティブウィンドウに

例えば:

#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.