![](/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.