bud*_*ble 12 .net c# visual-studio-2012
使用即时窗口时,必须在运行时和设计时之间有所不同.
如果我在设计时使用立即Window并将一个局部变量放在堆栈中:
string s = "test";
Run Code Online (Sandbox Code Playgroud)
VS将启动编译器并在堆上创建一个名为s的新变量,并在设计时使用的临时堆栈帧上放置一个指针.(至少我认为它是如何工作的,至少是简化的.如果我错了,请纠正我)
从现在开始,在运行我的应用程序或关闭VS之前,我无法将s用于其他任何事情:
int s = 12;
A local variable named 's' is already defined in this scope
Run Code Online (Sandbox Code Playgroud)
我可以使用contextmenu清除即时窗口,但这实际上只是清除了窗口本身.我的局部变量仍然留在堆栈中.
我想知道,如果真的没有办法清除我之前在即时窗口中创建的所有变量?
(我使用的是VS 2012 SP1教授,但我猜这个问题与VS的每个版本保持一致)
我不知道 Visual Studio 中到底发生了什么,但 VS 似乎在 vshost.exe 进程中保留了编译版本。
如果您终止关联的进程(即 WindowsFormsApplication1.vshost.exe *32),它将清除堆栈并允许您重用该变量,而无需重新启动 VS。
| 归档时间: |
|
| 查看次数: |
1339 次 |
| 最近记录: |