gpt4 book ai didi

c# - Visual Studio Watch 窗口不考虑使用

转载 作者:太空狗 更新时间:2023-10-29 19:26:28 25 4
gpt4 key购买 nike

我在 View 模型中有以下代码:

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

如果我在监 window 口中查看 Math.Sin(Theta)(通过选择代码、右键单击并选择“添加监视”),我会收到以下错误:

The name 'Math' does not exist in the current context

我想知道的是:

  1. 这是 Visual Studio 2010 的预期/默认行为吗?我可以发誓这从来都不是问题,但也许它总是以这种方式起作用,而我不知何故从未注意到。
  2. 如果出现此错误不是正常现象,请问问题出在哪里? Visual Studio 中有一百万个设置,我不知道从哪里开始。

我应该注意到这个问题与 this 有点相似,但我在局部变量上没有任何问题,而且我没有使用 PostSharp。

编辑

我刚刚尝试将我所有的 Visual Studio 设置重置为默认值,但我仍然遇到同样的错误。如果有人想在 Visual Studio 中尝试一个简单的测试,我只想知道如果为 Math.Sin(1) 添加监视是否会出错。

编辑2

这里有几个屏幕截图来展示我遇到的情况:

Adding Math.Sin(1) to watch

Showing error for Watch

编辑3

有趣的是,如果我在 Watch 窗口中键入 Math.,intellisense 会起作用,但如果我完成表达式,我仍然会收到错误消息:

Showing intellisense working

编辑4

解决 BACON 的问题:

  1. 我在使用 QuickWatch 和 Immediate 时得到了相同的行为。
  2. 关闭并重新打开所有窗口并不能解决问题。
  3. 我使用的是 Visual Studio 2010 Professional(版本 10.0.40219.1 SP1Rel)
  4. 我尝试以 .NET 4.0 Client Profile 和完整的 .NET 4.0 为目标。没有区别。我创建了一个针对 .NET 4.0 客户端配置文件的控制台应用程序(而不是 WPF 应用程序),最后,错误没有发生。因此,WPF 可能是一个问题(或 WPF 与某些第三方库)。 (接下来会检查一下。)

最佳答案

罪魁祸首似乎是执行 IL 编织 (Fody.PropertyChanged) 的第三方库。

如果我在没有这个库的情况下创建一个新的 WPF 项目,我可以在监 window 口中使用 Math.Sin()。安装 PropertyChanged 后,我开始收到“在此上下文中不可用”错误。

感谢@BACON 引导我走上正确的道路来解决这个问题。

这是我在 PropertyChanged 网站上发布的问题的链接:

http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634

编辑

随后,事实证明这可能是 PropertyChanged 使用的 Mono-Cecil 中的错误:

https://github.com/jbevain/cecil/issues/90

关于c# - Visual Studio Watch 窗口不考虑使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com