我正在使用Visual Studio 2010(专业版)。在我的程序中,我有一个包含字节对象的对象数组,这些对象被强制转换为字节数组:
public byte[] myMethod(object[] someBytes)
{ // Breakpoint is set here
return someBytes.Cast<byte>().ToArray();
}
出于测试目的,我想更改对象数组someBytes的值。当在断点处打破调试时,我可以在将鼠标悬停在someBytes上时出现的下拉列表中手动执行此操作。但是,更改其中一个对象值会导致出现问题:转换不再适用于此值,并且我收到InvalidCastException。
这似乎表明在使用调试器进行操作时不会保留对象结构,但为什么会这样呢?如何避免,以便我可以修改字节值?
通过内存窗口直接修改值有一种麻烦的可能性,但如果可能的话,这是我想避免的解决方案。