立即窗口是一个非常有用的调试应用程序的工具.它可用于执行在断点上下文中有效的代码语句并检查值.我还用它来输入代码片段来学习语言功能.
你如何使用立即窗口?
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在立即窗口中工作,但有时可能有点不一致.根据我的经验,它似乎只能在调试模式下使用,但不能在设计,非调试模式下使用.
不幸的是,立即窗口的另一个缺点是它不支持循环.
立即窗口也可用于执行命令.只需键入a >
后跟命令即可.
例如,>shell cmd
将启动一个命令shell(例如,这可以用于检查传递给Visual Studio的环境变量).>cls
将清除屏幕.
这是一个常用的命令列表,它们有自己的别名:https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx
立即窗口用于调试和计算表达式,执行语句,打印变量值等.它允许您在调试期间输入要由开发语言评估或执行的表达式.
要显示立即窗口,请选择Debug> Windows> Immediate或按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