簡體   English   中英

Visual Studio Watch窗口沒有考慮使用

[英]Visual Studio Watch window not taking into account 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);
    }
}

代碼文件頂部的一個用法是System ,它包含Math

如果我在Watch窗口中查看Math.Sin(Theta) (通過選擇代碼,右鍵單擊並選擇“Add Watch”),我收到以下錯誤:

當前上下文中不存在名稱“Math”

我想知道的是:

  1. 這是Visual Studio 2010的預期/默認行為嗎? 我可以發誓這從來不是一個問題,但也許它總是那樣工作,我不知何故從來沒有注意到。
  2. 如果得到這個錯誤是不正常的,那么對問題可能是什么的任何想法? Visual Studio中有一百萬個設置,我不知道從哪里開始。

我應該注意到這個問題與類似,但我沒有任何問題將鼠標置於我的局部變量上,而且我沒有使用PostSharp。

編輯

我只是嘗試將我的所有Visual Studio設置重置為默認值,但我仍然遇到同樣的錯誤。 如果有人想在Visual Studio中嘗試一個簡單的測試,我只想知道如果你為Math.Sin(1)添加一個手表就會出現錯誤。

編輯2

這里有幾個屏幕截圖,以顯示我正在經歷的:

添加Math.Sin(1)來觀看

顯示Watch的錯誤

編輯3

有趣的是,如果我輸入Math. ,intellisense就有效Math. 進入Watch窗口,但如果我完成表達式,我仍然會收到錯誤:

顯示intellisense工作

編輯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 Client Profile的Console App(而不是WPF應用程序),最后,沒有發生錯誤。 因此,WPF可能是一個問題(或WPF與一些第三方庫)。 (接下來會檢查。)

罪魁禍首似乎是執行IL編織的第三方庫(Fody.PropertyChanged)。

如果我創建一個沒有這個庫的新WPF項目,我可以在Watch窗口中使用Math.Sin() 安裝PropertyChanged ,我開始收到“在此上下文中不可用”錯誤。

感謝@BACON引導我走上正確的道路來解決這個問題。

這是我在PropertyChanged網站上發布的問題的鏈接:

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

編輯

隨后,事實證明這可能是Mono-Cecil中的一個錯誤,PropertyChanged使用它:

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

我是在一個litte測試應用程序中,在構造函數中完成的。

在此輸入圖像描述

試着把手表放在數學上可以讓我看到E和PI的值。 你不能把一個放在罪上。 把一個放在val上就可以了。

所以,不,我不認為這是正常的,除非你點擊了錯誤的名字。 即,不是變量,而是“罪”部分......

這是我突出整個事情的地方......

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM