即时窗口是调试应用程序的一个非常有用的工具。它可用于执行在断点上下文中有效的代码语句和检查值。我还用它来输入代码片段来学习语言特性。
如何使用“即时窗口”?
Visual Studio 中的即时窗口的一个很好的特性是它能够计算方法的返回值,特别是当它被客户端代码调用,但它是变量赋值的 没有部分时。如前所述,在调试模式下,您可以与变量交互,并在内存中执行表达式,这对于实现这一点非常重要。
例如,如果您有一个静态方法,它返回两个数字之和,例如:
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 在即时窗口 中工作,但有时可能有点不一致。根据我的经验,它似乎只能在调试模式下使用,而不能在设计、非调试模式下使用。
不幸的是,即时窗口的另一个缺点是它不支持循环。
即时窗口也可以用来执行命令。只需键入一个 >后跟命令。
>
例如,>shell cmd将启动一个命令 shell (这对于检查传递给 VisualStudio 的环境变量非常有用)。>cls会清除屏幕。
>shell cmd
>cls
下面是一些常用的命令,它们都有自己的别名: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx
“即时”窗口用于调试和计算表达式、执行语句、打印变量值等。它允许您输入在调试期间由开发语言计算或执行的表达式。
若要显示“即时窗口”,请选择“调试”> “窗口”> “即时”或按 Ctrl-Alt-I
下面是“即时窗口”的一个例子:
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();}
添加断点
呼叫命令
Https://msdn.microsoft.com/en-us/library/f177hahy.aspx