gpt4 book ai didi

c# - 为什么将数组分配给 null 会创建一个空数组?

转载 作者:行者123 更新时间:2023-11-30 12:52:39 25 4
gpt4 key购买 nike

这是我必须看到的那些奇怪的东西之一,但这是我正在调试的一些代码:

    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# 中是否存在一些我以前不知何故不知道的数组怪癖?

最佳答案

我认为调试器可能会向您显示 myCode 的类型,在本例中它是一个长度为零的(未分配的)byte 数组。

关于c# - 为什么将数组分配给 null 会创建一个空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com