实时脚本C#REPL - CLI或VisualStudio 2013

时间:2014-07-06 15:57:00

标签: c# .net visual-studio visual-studio-2013

C#/.NET 4.5是否有任何可以在 VisualStudio 2013 express cli 中使用的REPL。

我试过了:

  1. http://visualstudiogallery.msdn.microsoft.com/295fa0f6-37d1-49a3-b51d-ea4741905dc2 - 不与vs 2013合作
  2. MS Roslyn - 也不与2013年合作
  3. vs gallery,SO问题等没有运气

1 个答案:

答案 0 :(得分:4)

Visual Studio调试的最佳工具包含在IDE中,即使在Express版本中也是如此。在这种情况下,选择的工具是立即窗口,它通常与IDE下部的输出窗口对接。

要使用它,您需要在Debug配置中构建项目,并在代码中的有用位置设置断点。例如,我可能会调试这样的类:

namespace MyThings
{
  public class Thing
  {
    private string thingName = "default name";
    public string ThingName
    {
      get { return thingName; }
      private set { thingName = value; }
    }

    public Thing(string name)
    {
      thingName = name;
    }

    public SayThing()
    {
      string thingsToSay = thingName + " and things.";  // Set breakpoint here
      Console.WriteLine("I have some {0}", thingsToSay);
    }
  }

  public static class Program
  {
    public static void Main()
    {
       var thing = new Thing("My thing");
       thing.SayThing();
    }
  }
}

如果我在指定的行设置一个断点并使用Visual Studio调试器运行它,我应该在以下输入可以工作的位置访问立即窗口:

this
    {MyThings.Thing ...}
       ThingName: "My thing"
       thingName: "My thing"

thingsToSay
    My thing and things.

此时,您可以使用工具栏按钮单步执行该方法,或点击F10F11按照步骤跳过或按步进入指令。即时窗口真正让您深入了解正在发生的事情以及如何解决问题。您甚至可以在当前范围内创建新变量:

var otherThingToTry = thingName + " another string to concatenate, I guess?";
otherThingToTry
  "My thing another string to concatenate, I guess?"

这非常有帮助,即使我的例子不是。