请注意这张照片
我在top方法中设置了断点。但是如果查看底部方法的参数,你可以看到顶部方法的值。我知道这是因为命名但我想知道为什么?与CLR
或编译器相关?
答案 0 :(得分:2)
Visual Studio可识别您正在悬停的符号。它会找到字符串“conference”。要显示该值,调试器将在当前范围内查找具有该名称的符号。
答案 1 :(得分:2)
这只是与调试器相关的内容,而不是CLR或其他任何内容。在任何给定的范围内,只有一个可访问的变量或具有指定名称的对象,因此调试器不会尝试区分出现在不同位置的相同名称。
将鼠标悬停在名称上等同于在调试器的监视窗口中为varialbe添加 watch 。从哪里选择名称并不重要。
答案 2 :(得分:1)
Porgram执行适用于stack
,程序在其上推送values
和instructions
。
所以观察窗口查询名称与值的“哈希表”,并显示结果。
在这个具体案例中,您有2个具有相同名称的变量,其中一个变量已在堆栈中可用,因此监视窗口只显示其结果。