这是一种奇怪的感觉,我觉得我必须看到的东西,但这是我正在调试的一些代码:
private byte[] myCode = null;
...
public bool Tampered
{
get
{
return Bytes == null;
}
set
{
if (value)
{
if (Bytes != null)
{
ProcessBytes(); /* BREAKPOINT HERE */
myCode = null;
}
}
}
}
我运行我的代码,执行someObject.Tampered = true;
并在断点处中断。此时,调试器显示mycode == bytes[3]
。一切都很好。我跨过ProcessBytes。一切都还不错。
然后,我跳过myCode = null;
,调试器显示myCode == bytes[0]
。
发生了什么事?我是否只是从根本上打破了一些东西? myCode不是属性,因此它不应该做任何奇怪的事情。在C#中是否有一些我以前不知道的数组的怪癖?
答案 0 :(得分:1)
我认为调试器可能会显示myCode
的类型,在这种情况下是一个长度为零的(未分配的)byte
数组。