我在视图模型中有以下代码:
public Point Location
{
get
{
var rangePixels = Range * PixelsPerMile;
var xCoordinate = OwnLocation.X * MapScale + rangePixels * Math.Cos(Theta);
var yCoordinate = OwnLocation.Y * MapScale - rangePixels * Math.Sin(Theta);
return new Point(xCoordinate, yCoordinate);
}
}
代码文件顶部的一个使用是
System
,其中包含 Math
。如果我在监视窗口中查看
Math.Sin(Theta)
(通过选择代码、右键单击并选择“添加监视”),我会得到以下错误:“当前上下文中不存在名称 'Math'。”
我想知道的是:
1. 这是 Visual Studio 2010 的预期/默认行为吗?我敢肯定以前从来没有出现过这个问题,但也许它一直都是这样工作的,而我不知道。 2. 如果不正常出现此错误,您认为问题可能是什么?Visual Studio 中有数百万个设置,我不知道从哪里开始。
我应该注意到这个问题与 this 类似,但我没有遇到任何鼠标悬停在本地变量上的问题,也没有使用 PostSharp。
我刚刚尝试将我的 Visual Studio 设置重置为默认值,但仍然遇到相同的错误。如果有人想在 Visual Studio 中进行简单的测试,我只想知道当你添加
Math.Sin(1)
的监视器时是否会出错。编辑2:
这里有几张屏幕截图来展示我所经历的:
编辑3
有趣的是,如果我在监视窗口中输入Math.
,智能感知会起作用,但是如果我完成表达式,仍然会出现错误:
编辑4
回答BACON的问题:
- 我在QuickWatch和Immediate中得到了相同的行为。
- 关闭并重新打开所有窗口不能解决问题。
- 我正在使用Visual Studio 2010 Professional(版本10.0.40219.1 SP1Rel)。
- 我尝试将目标设置为.NET 4.0 Client Profile和完整的.NET 4.0。没有任何区别。我创建了一个控制台应用程序(而不是WPF应用程序),将目标设置为.NET 4.0 Client Profile,最后,错误没有发生。因此,WPF可能存在问题(或WPF与某些第三方库存在问题)。 (接下来会检查这个问题。)
System.Math.Sin(1)
上添加一个监视器会发生什么? - Lance U. Matthews