gpt4 book ai didi

c# - 作为属性和索引器的数组

转载 作者:太空狗 更新时间:2023-10-30 00:54:28 24 4
gpt4 key购买 nike

我在一个类中有两个私有(private)数组,它们使用一种方法运行特定操作。调用此方法后,这两个数组将填充结果。制作这些数组属性不是一个好的做法,所以我计划有一个单独的属性来返回私有(private)数组的克隆。

1) 返回数组克隆的开销是多少?在任何情况下都不会引起注意吗?

2) 如果只有一个数组,我可以使用索引器。是否有一种特定的机制可以为一个类中的多个数组使用索引器?

最佳答案

我认为您的意思是“开销”或“成本”,而不是“重载”。无论如何,计算上它是O(1)所以这取决于数组的大小,但一般来说,如果数组元素少于一千个左右,数组复制是一种廉价操作。

如果您不打算修改数组,那么您可以通过将它们包装在 ReadOnlyCollection<T> 中来公开您的私有(private)数组。像这样:

private TWhatever[] _array;
public ReadOnlyCollection<TWhatever> Elements { get; private set; }

public ClassConstructor() {
_array = new TWhatever[1000];
this.Elements = new ReadOnlyCollection<TWhatever>( _array );
}

关于c# - 作为属性和索引器的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777631/

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