我在一個視圖模型下面的代碼:在代碼文件的頂部Visual Studio的監視窗口沒有考慮到usings
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);
}
}
其中usings的是System
,其中包含Math
。
如果我在監視窗口中查看Math.Sin(Theta)
(通過選擇代碼,右擊,選擇「添加監視」),我收到以下錯誤:
The name 'Math' does not exist in the current context
我想知道的是:
- 這是Visual Studio 2010的預期/默認行爲嗎?我可以發誓,這從來沒有成爲一個問題,但也許它總是這樣工作,我從來沒有注意到。
- 如果得到這個錯誤是不正常的,對這個問題可能是什麼想法? Visual Studio中有一百萬個設置,我不知道從哪裏開始。
我應該注意到這個問題隱約相似this,但我沒有任何問題,將鼠標懸停在我的本地變量,我沒有使用PostSharp。
編輯
我只是想重置所有我的Visual Studio設置備份到默認,而我仍然得到同樣的錯誤。如果有人想在Visual Studio中嘗試一個簡單的測試,我只想知道如果您爲Math.Sin(1)
添加手錶是否出現錯誤。
編輯2
這裏有一對夫婦的屏幕截圖顯示什麼我遇到:
編輯3
國米。有趣,智能感知作品,如果我輸入Math.
到監視窗口,但如果我完成的表情,我仍然得到錯誤:
編輯4
爲了解決培根的問題:
- 我使用QuickWatch和Immediate獲得相同的行爲。
- 關閉並重新打開所有窗口並不能解決問題。我使用Visual Studio 2010專業版(版本10.0.40219.1 SP1Rel)
- 我試着將.NET 4.0客戶端配置文件和完整的.NET 4.0作爲目標。沒有區別。我創建了一個面向.NET 4的控制檯應用程序(而不是WPF應用程序)。0客戶端配置文件,最後,錯誤沒有發生。所以,WPF可能是個問題(或者帶有一些第三方庫的WPF)。 (將檢查旁邊。)
如果您在'System.Math.Sin(1)'上添加手錶會發生什麼? – BACON 2012-02-29 03:10:06
@BACON,工作正常。 (儘管對於更深的命名空間,它會變得很痛苦。) – devuxer 2012-02-29 03:14:31
快速監視和立即窗口顯示相同的行爲嗎?如果您完全關閉所有Watch窗口並從「調試」菜單重新打開它們,是否會影響任何內容?你正在使用什麼版本的Visual Studio 2010?您是否安裝了Service Pack 1?無論您的應用程序針對哪個版本的.NET,都會發生這種情況嗎? – BACON 2012-02-29 03:26:57