另见:
这两个问题的不同之处在于它们询问的是如何更改大小,对此我很清楚答案是:“不要...使用列表”。他们还引用了基于引用的 Array.Resize(ref array, int size)
。
我的问题是:
考虑到我有一个单一的遗留代码库,我不可能检查全部,也不能保证它做了什么,...如果我有调用方法传递一个非按- ref数组,能不能保证之后的数组大小不变。
Array.Resize 不是问题,因为 by-ref-ness 必须一直向上传递通过调用堆栈,而这显然不是。
但是还有其他可能的问题吗?
注意不要重复
我认为这是一个不同于其他问题的问题,因为这是一个“这可能吗?”的问题。而不是“我将如何做/最好的方法是什么”。因此,那些在后者中未提及的邪恶和错误的答案仍然与我的问题相关。
最佳答案
can I be guaranteed that the size of the array afterwards is unchanged.
是的,因为数组从不改变大小。曾经。 Array.Resize
创建一个新 数组并复制数据;它确实不实际调整任何东西的大小。如果您有对旧数组的引用,那么:您没问题并且大小不变。
关于c# - 我能保证非引用方法不会改变数组大小 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788361/