立即窗口是调试应用程序的非常有用的工具。它可用于执行在断点上下文中有效的代码语句并检查值。我还使用它来键入代码片段以学习语言功能。
您如何使用即时窗口?
立即窗口是调试应用程序的非常有用的工具。它可用于执行在断点上下文中有效的代码语句并检查值。我还使用它来键入代码片段以学习语言功能。
您如何使用即时窗口?
Answers:
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在“即时窗口”中运行,但有时可能会有些不一致。以我的经验,它似乎仅在调试模式下可用,而在设计非调试模式下不可用。
不幸的是,立即窗口的另一个缺点是它不支持循环。
Ctrl + Alt + I
或Debug->
立即窗口也可以用来执行命令。只需键入a,>
然后输入命令即可。
例如,>shell cmd
将启动命令外壳程序(例如,这对于检查将哪些环境变量传递给Visual Studio很有用)。>cls
将清除屏幕。
以下是常用命令的列表,它们具有自己的别名:https : //msdn.microsoft.com/zh-cn/library/c3a0kd3x.aspx
>open Filename
将在解决方案中打开所选文件,甚至具有文件名补全功能。
“即时”窗口用于调试和评估表达式,执行语句,打印变量值等。它允许您在调试期间输入要由开发语言评估或执行的表达式。
要显示立即窗口,请选择“调试”>“ Windows”>“立即”,或按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();}
添加断点
呼叫指令