29

VisualStudioのスタンドアロンバージョンの「イミディエイトウィンドウ」のようなものがあるのだろうか。「DateTime.Parse( "blah")」のような単純なものをテストして、それが機能するかどうかを確認したい場合があります。しかし、新しいコンソールアプリケーションを作成する必要があるたびに、コードを挿入してテストします。

悲しいことに、イミディエイトウィンドウは、何かをデバッグしているときにのみ機能します。PowerShellはそれを行うことができますか?cmd.exeと同様のCLIを開くだけで、C#コードを実行できますか?

4

17 に答える 17

33

Linqpad - 私はいつもこのように使っています。 http://www.linqpad.net/

名前に惑わされないでください。これは、その機能ではなく、元の動機を説明しているだけです。

ちょうど最近、彼は適切なステートメント補完機能を備えたバージョンをリリースしました。これは有料のアドオン (コア ツールは無料) ですが、わずかな金額で十分に価値があると思います。

于 2008-12-03T14:32:04.770 に答える
12

Mono プロジェクトには、インタラクティブな C# シェルが含まれています。これはまさにあなたが探しているものかもしれません。

http://www.mono-project.com/CsharpRepl

于 2008-12-03T14:26:40.410 に答える
9

scriptcsを試してみてください。VS IDE には統合されていませんが、プロジェクト コンパイラなどを必要とせずに、スクリプト ウィンドウで C# を入力して実行できます。

于 2013-06-06T17:52:33.577 に答える
8

これはあなたの質問に対する直接的な回答ではありませんが、次のツールを参照してください。

また、生成された IL などを見たい場合は、Snippy と呼ばれる Reflector にプラグインするツールがあります。これは、Jon自身の回答で言及している Snippy ツールに基づいています。

どれもとても使い心地がいいです。

于 2008-12-03T14:23:31.057 に答える
7

あなたが示唆するように、PowerShell はあなたが望むことを行うことができます。たとえば、DateTime.Parse をテストするには、次の 1 つのライナーでうまくいきます。

PS C:\Documents and Settings\Dan> [System.DateTime]::Parse("Blah")
Exception calling "Parse" with "1" argument(s): "文字列は有効な DateTime として認識されませんでした。インデックス 0 から始まる未知の単語です。」行:1 char:25 + [System.DateTime]::Parse( <<<< "Blah")

PS C:\Documents and Settings\Dan> [System.DateTime]::Parse("1/2/3")

2003 年 2 月 1 日 00:00:00

上記では、PowerShell (v1.0) の現在のリリースを使用していることに注意してください。PowerShell の次のバージョンでは、C# と PowerShell スクリプトをより直接的に組み合わせることができます。食欲をそそるには、Doug Finkeによる7 分間のスクリーンキャスト「 C# から PowerShell へ」をご覧ください。非常に印象的!

于 2008-12-03T14:32:40.027 に答える
4

Mono を使用している場合は、次のようになります。

CsharpRepl

Don Boxも数年前に非常に単純なものをハッキングしました。

于 2008-12-03T14:26:12.533 に答える
4

lassevk の答えに沿って、私は" Snippy" を持っています。これは C# in Depth 用に開発されたもので、UI はかなりゴミですが、機能します。追加のメンバー (メソッド、ネストされたクラスなど) も記述できます。

public static void Foo()
{ 
    Console.WriteLine("Hello");
}
...
Foo();

( ... は、Snippy に「ここにあるものはすべて Main に属する」と伝えるために使用されます。)

于 2008-12-03T14:29:04.197 に答える
3

フル機能の C# REPL IDE であるCShellをリリースしました。コード補完、スクリプト ファイル、参照の追加をサポートし、非常に拡張可能です。また、すぐに NuGet のサポートを追加する予定です。これにより、コードをすばやく記述してその動作を確認できるようになります。

http://cshell.net/

Cシェルのスクリーンショット

私たちは LINQPad を愛用していますが、これには REPL がありません。コードは 1 回実行され、スクリプトを変更してスクリプト全体を再度実行しない限り、結果に対してそれ以上何もすることができません。これは問題ありませんが、さらにスクリプトのような感覚が必要な場合は、REPL でコードを評価するのが非常に便利で便利です。

于 2013-06-06T17:47:30.517 に答える
2

また、SharpDevelopは非常に高速で軽量であるため、迅速なテスト プロジェクトを作成する最も簡単な方法であることがわかりました。

于 2008-12-03T14:30:28.250 に答える
1

オブジェクトテストベンチが役立つ場合があります。あまり知られていませんが、クラスのインスタンスを作成したり、静的メソッドを実行したりすることができます。なじみのないAPIの使用方法を発見したり、独自のクラスやメソッドをすばやくデバッグしたりして、簡単なチェック用のテストハーネスの作成を節約するのに役立ちます。

ここでMSDNドキュメントを見つけることができます:

http://msdn.microsoft.com/en-us/library/c3775d98%28VS.80%29.aspx

于 2008-12-03T14:43:52.997 に答える
1

LINQPadを使用します。

名前に関係なく、単純な式からクラス全体まで、あらゆる C# または VB コードを実行できます。

さらに、結果でオブジェクト グラフ全体を視覚化できます。

独自のアセンブリへの参照を追加することもできます。

于 2009-06-19T17:47:57.907 に答える
1

しばらくお待ちいただければ.. C# 4.0 に間に合うように、Ruby の irb に相当する C# が登場する可能性があるようです。Anders H. は、任意の C# コードを入力して、彼の「Future of C# 」で結果を確認できるインタラクティブなコンソール セッションを実演しました。 ' PDC 2008 の作品です。そこから WPF ウィンドウをポップして、コンソール インターフェイス経由で操作することもできます。かなりクール。

于 2008-12-03T16:39:10.567 に答える
0

Pythonを知っていて気に入っている場合は、IronPythonが良い代替手段になる可能性があります。(Python)REPLコンソール(ipy.exe)が付属しており、すべての.Netタイプをインポートして使用できます。

とまったく同じように、小さなことをテストするのに便利だと思いますDateTime.Parse("Blah")

実際にはC#コードを実行できないことに注意してください。ただし、.Netにアクセスするだけであれば、完璧です。また、IronPython Tools for VSをインストールすると、単一のキーボードショートカット(Alt + I)を使用してVSでREPLセッションを開始し、必要なときにドッキングウィンドウで実行したままにすることができます。

于 2010-11-24T17:45:38.257 に答える
0

Roslyn プロジェクト ソースには、CSI ( http://sourceroslyn.io/#csi/Csi.cs )と呼ばれる REPL が含まれています。Csi クラスは現在内部にありますが、「csi」プロジェクト (Roslyn.sln: Interactive/Hosts/csi) では、アセンブリをロードするコマンド #r やスクリプトをロードして実行するコマンド #load などをサポートする実行可能なコンソール アプリケーションを使用できます。ファイル (csi を起動して #help を使用)。

于 2016-09-23T14:00:00.583 に答える
0

更新: http://avillenas.com/post/interactive-c

さて、あなたはこれを試すことができます。

  1. dotnet.github.io をダウンロードしてインストールします
  2. コマンドを開く
  3. 「dotnet repl」と入力します
  4. 必要なものを入力します。

私はあなたがやりたいことをしました。gifを見るにはここをクリック

于 2016-02-10T00:45:23.023 に答える