我正在为dll运行unittests。
[TestMethod]
public void Test1()
{
List<MyObject> a = GetData();
}
当我尝试将其更改为以下内容时,效果很好:
[TestMethod]
public void Test1()
{
List<MyObject> b = GetData();
List<MyObject> a = GetData();
}
我遇到的问题是,当我到达b或a上的断点时,它说b在当前上下文中不存在。但是同一行适用于我的一个同事。
我已经重新启动了Visual Studio,并清理了解决方案并对其进行了重建。有人在那里有个主意吗?
如果您要调试以发布模式/设置了“优化代码”标记的版本,则会发生这种情况。
这是因为,如果编译器知道永远无法使用变量,则可以将变量带出范围,因为从语言的角度来看,调试模式将变量保留在范围内。
由于在您的代码中从未使用过b(和a),因此编译器是免费的,因此在发行模式下可将您的代码视为:
[TestMethod]
public void Test1()
{
GetData();
GetData();
}
确实可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句