gpt4 book ai didi

c# - 阵列克隆访问?

转载 作者:行者123 更新时间:2023-11-30 15:44:10 24 4
gpt4 key购买 nike

我正在阅读 XNA 库代码,在类型 VertexPositionColor 中,他们抑制了 CA2105:ArrayFieldsShouldNotBeReadOnly 消息,理由是“每次克隆数组的性能成本用的太厉害了。”

public struct VertexPositionColor
{
public static readonly VertexElement [ ] VertexElements;
}

但是为什么用的时候会被复制呢?这只发生在访问的属性/字段是 ValueType 的结构中,对吧?

最佳答案

我猜他们是在证明他们公开一个array field 比其他任何事情都重要,而他们这样做的根本原因是性能:

他们可能想到的替代方案是将 array field 设为私有(private),并使用 property 公开 IEnumerable或每次访问 property 时返回 array 的副本。

编辑。稍微编辑一下答案,使我想说的更清楚 :p。

关于c# - 阵列克隆访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6232547/

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