Nob*_*ble 7 c# arrays resize default-value
在C#中,调整数组大小(在这种情况下,增加大小)会使用默认值初始化新段–这可靠吗?
Array.Resize(ref bytes, bytes.Length + extra);
Run Code Online (Sandbox Code Playgroud)
我确实看到了默认值(字节数组为0),但是是否可以安全地将其作为所有基本类型的标准行为?在我的应用程序中,节省每一秒是很重要的,因此,我认为如果默认情况下已经可用,就可以避免不必要的循环来初始化新添加的段。Microsoft .NET文档未明确声明此事实:尽管示例示例暗示了该行为,但https://docs.microsoft.com/zh-cn/dotnet/api/system.array.resize?view=netframework-4.8。
是的,您可以依靠它。从文档(重点是我的):
此方法分配具有指定大小的新数组,将元素从旧数组复制到新数组,然后用新数组替换旧数组。数组必须是一维数组。
保证分配一个新数组可以确保使用默认值填充(有效地“将所有位设置为0”),因此,如果我们信任该描述,则整个Array.Resize
操作的结果的确会为所有尚未复制的元素提供默认值从旧的阵列。