4
這是那些奇怪的那些感覺就像我必須看到的東西之一,但這裏是一些代碼,我調試:爲什麼將一個數組賦值爲null會創建一個空數組?
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#中有一些奇怪的數組,我以前不知道有關嗎?
哦,沒關係。這全是我的錯。儘管大聲說出問題。原來調試器正在調用'get',它調用了Bytes屬性,該屬性重新創建了該數組。 – izb 2010-11-10 14:51:21
你花我的時間來測試你的錯。 – 2010-11-10 14:59:51