代码之家  ›  专栏  ›  技术社区  ›  Phillip Ngan

如何在VisualStudio中使用即时窗口?

  •  113
  • Phillip Ngan  · 技术社区  · 17 年前

    4 回复  |  直到 9 年前
        1
  •  140
  •   Community Mohan Dere    9 年前

    VisualStudio中立即窗口的一个很好的特性是它能够计算方法的返回值,特别是当客户机代码调用它时,但它是 不 变量赋值的一部分。如前所述,在调试模式下,您可以与变量交互并在内存中执行表达式,这在实现这一点上起着重要作用。

    例如,如果您有一个返回两个数字之和的静态方法,例如:

    private static int GetSum(int a, int b)
    {
        return a + b;
    }
    

    ? GetSum(2, 4)
    6
    

    如您所见,这对于静态方法非常有效。但是,如果该方法是非静态的,则需要与该方法所属对象的引用交互。

    private class Foo
    {
        public string GetMessage()
        {
            return "hello";
        }
    }
    

    如果对象已经存在于内存中,并且它的作用域中,那么只要它已经实例化,就可以在即时窗口中调用它 之前

    ? foo.GetMessage(); // object ‘foo’ already exists
    "hello"
    

    拥有 即时窗口中的实例:

    ? Foo foo = new Foo(); // new instance of ‘Foo’
    {temp.Program.Foo}
    ? foo.GetMessage()
    "hello"
    

    如果您想进行进一步的评估、计算等,可以进一步将方法的结果临时分配给变量:

    ? string msg = foo.GetMessage();
    "hello"
    ? msg + " there!"
    "hello there!"
    

    此外,如果您甚至不想为新对象声明变量名,只想运行其方法/函数之一,请执行以下操作:

    ? new Foo().GetMessage()
    "hello" 
    

    查看方法值的一种非常常见的方法是选择类的方法名称并执行添加监视,以便可以在监视窗口中查看其当前值。但是,再一次,需要实例化对象,并在范围内显示有效值。与使用即时窗口相比,它的功能要小得多,限制也要大得多。

    除了检查方法,您还可以执行简单的数学公式:

    ? 5 * 6
    30
    

    或比较值:

    ? 5==6
    false
    ? 6==6
    true
    

    Intellisense works in the Immediate Window ,但有时可能有点不一致。根据我的经验,它似乎只在调试模式下可用,但在设计、非调试模式下不可用。

    不幸的是,即时窗口的另一个缺点是它不支持循环。

        2
  •  13
  •   CJBS    9 年前

    使用即时窗口执行命令

    即时窗口也可用于执行命令。只是a型 > 然后是命令。

    enter image description here

    例如 >shell cmd 将启动命令shell(例如,这有助于检查传递给Visual Studio的环境变量)。 >cls 将清除屏幕。

    以下是常用命令列表,这些命令都有自己的别名: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx

        3
  •  7
  •   Isma Rekathakusuma    8 年前

    即时窗口用于调试和计算表达式、执行语句、打印变量值等。它允许您输入在调试期间由开发语言计算或执行的表达式。

    要显示即时窗口,请选择调试>视窗>立即或按Ctrl-Alt-I键

    enter image description here

    int Sum(int x, int y) { return (x + y);}
    void main(){
    int a, b, c;
    a = 5;
    b = 7;
    c = Sum(a, b);
    char temp = getchar();}
    

    添加断点

    enter image description here

    调用命令

    enter image description here

    https://msdn.microsoft.com/en-us/library/f177hahy.aspx