![](/img/trans.png)
[英]Is there a way to use Visual Studio's Watch Window in my own App?
[英]Using LINQ expressions in Visual Studio's Watch window
我在程序中有一個 byte[] 變量,例如:
byte[] myByteArray = new byte[] { 0xF0, 0x0F };
在調試這個程序時,我想在 Visual Studio 的 Watch 窗口中將字節數組內容顯示為單獨的十六進制值。
所以我嘗試在 Watch Window 中使用以下 LINQ 表達式,但沒有成功:
myByteArray.Select(value => value.ToString("X2")).ToArray()
觀察窗口的錯誤信息:
錯誤 CS1061:“byte[]”不包含“Select”的定義,並且找不到接受“byte[]”類型的第一個參數的擴展方法“Select”(您是否缺少 using 指令或程序集引用? )
有誰知道是否有一種方法可以在不安裝第三方擴展的情況下在 Visual Studio 的監視窗口中使用 LINQ 表達式?
我此時正在使用 VS2017 15.6.6。
編輯:此問題的屏幕截圖...
如果代碼中沒有 'using System.Linq' 語句,您仍然可以通過手動調用擴展方法來使用 Linq 查詢:
System.Linq.Enumerable.Select(collection, x=>x.Name)
我試圖重現您的問題並發現以下內容:
似乎監視窗口使用了您在代碼中引用(通過using
)的命名空間。
如果您不在代碼文件中使用 linq(和System.Linq
命名空間),監視窗口將找不到擴展名。
如果你有一個using System.Linq;
並在您的代碼中使用該命名空間中的某些內容,監視窗口將查找並執行 linq 擴展。 (如果您不使用System.Linq
的任何System.Linq
該引用將被優化掉,因此該程序集不會在運行時加載並且調試器無法使用它)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.