1

请注意这张图片 在此处输入图像描述 ,我在顶部方法中设置了断点。但是如果查看底部方法的参数,您可以看到顶部方法的值。我知道这是因为命名但我想知道为什么?与CLR或编译器有关?

4

3 回答 3

2

Visual Studio 识别您悬停的符号。它将找到字符串“会议”。为了显示该值,调试器将在当前范围内查找具有该名称的符号。

于 2013-02-18T07:58:18.457 回答
2

这只是与调试器相关的东西,而不是 CLR 或其他任何东西。在任何给定范围内,只有一个具有指定名称的可访问变量或对象,因此调试器不会尝试区分出现在不同位置的相同名称。

将鼠标悬停在名称上相当于在调试器的监视窗口中为变量添加监视。你从哪里取的名字并不重要。

于 2013-02-18T07:58:35.203 回答
1

程序执行适用于stack程序推送的位置values及其instructions上。

因此,观察窗口查询名称与值的“哈希表”并向您显示结果。

在这个具体的例子中,你有 2 个同名的变量,其中一个已经在堆栈中可用,所以监视窗口只显示它的结果。

于 2013-02-18T08:00:31.400 回答