【发布时间】:2018-04-28 21:15:41
【问题描述】:
我在 C# 中有一个非常基本的问题。所以我有一个名为 m_permutation(类的属性)的 int 数组,在类的方法中我有以下代码:
int[] newPermutation = new int[m_permutation.Length];
newPermutation = m_permutation;
newPermutation[0] = 5;
我很困惑为什么 m_permutation 在这段代码中也发生了变化,我该如何解决?
我知道我可以通过 for 循环初始化 newPermutation,以获得相同的 m_permutation 值,然后修复它。但是,有人可以解释为什么会发生这种情况,最好的解决方法是什么?
谢谢,
波格丹
【问题讨论】:
-
newPermutation = m_permutation; 这不是副本,只是另一个参考。要获得副本写入:newPermutation = m_permutation.ToArray(); 请阅读参考变量!
-
@TaW 是的,刚刚开始。谢谢!