我有一些任意代码。例如以下内容:
class MyClass
{
private MyClass() { }
public static readonly MyClass Instance = new MyClass();
public Hashtable DoSomething() {return new Hashtable {{"key", "value"}};}
}
var test = MyClass.Instance.DoSomething();
现在调试和悬停test
intellisense时根本没有显示任何内容。同时向变量添加监视也不起作用。而是消息
当前上下文中不存在名称'test'
出现。我已经重建了解决方案,关闭VS并重新打开它。但是,当不调试时,我会在intellisense中获得该变量的类型信息。
注意:不幸的是,上面的代码在我的测试解决方案中有效,但是实际的代码要复杂得多。我已经尝试尽可能地简化这一点,假设一些downvotes,因为错误很难再现。但是也许有人在VS上遇到过类似的问题。
编辑:在项目设置中禁用代码优化(属性 - >构建 - >优化代码)
答案 0 :(得分:1)
编译器最有可能优化变量,因为它从不在本地使用。
以任何方式使用该变量来规避这一点:
var test = MyClass.Instance.DoSomething();
Debug.WriteLine(test); // <=== Set breakpoint here
我不是百分百肯定,但我认为优化也会影响到这一点。所以,如果你有这些问题,请关闭它们。