C#交互式窗口可以与我的代码进行交互吗?


161

在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有关更多信息,请参阅我的最新答案
懒惰

Answers:


221

使用Visual Studio 2015时:

您可以导航到“ 视图”>“其他Windows”>“ C#Interactive”,以打开“交互”窗口,

然后,右键单击您的项目,然后从上下文菜单中运行“ 初始化与项目的交互”


对于旧版本:

要在代码中使用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(交互式窗口)。看看Don Syme的c9视频,他在开发过程中使用F#交互式窗口。好东西。channel9.msdn.com/Series/...
约翰Dhom

25
@JohnDhom为什么要投票?我的答案完全展示了如何通过C#交互窗口与您自己的代码进行交互(甚至有一个截图显示了这一点)。
懒惰

8
在.Net Core项目中,上下文菜单项不会出现,因此需要#r方法。这个答案是完美的。
瑞安

2
我想添加一个有用的提示:如果您想使用一些运行时的东西,您可以轻松地添加以下指令:#r "System.Runtime"
mostafa8026

70

您可以使用自己项目中的类。
只需右键单击您的解决方案,然后选择“从项目中重置交互式”。

如果您需要更多信息,请参见以下资源:
使用Roslyn随附的C#交互式窗口–第2部分


1
谢谢,听起来不错。las,它不能按描述的那样工作—无论我尝试执行哪个项目,它都会弹出一个错误警告,提示“无效的程序集名称”。令人沮丧的是,它没有解释所讨论的程序集。我猜软件坏了。
Panic Panic 2012年

@MattHickford:项目是什么类型的项目?除了简单的ConsoleApplications和ClassLibraries,我们还没有进行太多测试。
凯文·皮尔奇

感谢您询问凯文。我刚刚在一些较小的项目上尝试过“从项目重置交互”,它工作正常。无法可靠运行的项目是具有许多参考的更复杂的库和应用程序。
Panic Panic 2012年

25
这些都不适用于VS 2015。上下文菜单命令消失了,#r找不到我的项目程序集。有任何想法吗?
ygoe '16

18
在VS 2015 Update 3中,右键单击解决方案中的项目(在Solution Explorer中)时,会出现“与项目进行交互”。
安德烈·帕纳

44

只是@ Botz3000答案的更新。

现在,您要查找的命令称为“初始化与项目的交互”

在此处输入图片说明

同样值得注意的是,如果我的C#交互式窗口不可见,我将找不到此命令。


11
不,这不对。我在屏幕截图中指出的位置完全相同。
汤姆(Tom)

3
@Tom似乎根据您正在使用的项目类型起作用或不起作用。找到项目时您正在处理的项目类型是什么?
卢克·汉默

@WizardHammer我相信课程库
汤姆(Tom)

10
我正在尝试使其与NetStandard库一起使用,并且上下文菜单中没有该选项
ChadT


11

完全同意“与项目进行交互”是很酷的。

我的做法是推类到库和使用 // css_reference在C#脚本或r组成的C#互动窗口

例如:

#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.