我正在努力围绕我在下面运行程序时所面临的问题缠住我的头:
using System;
namespace StringReversal
{
class MainClass
{
public static void Main(string[] args)
{
string example = "word";
char[] myArray = new char[example.Length];
myArray = example.ToCharArray(0, example.Length);
char[] reverseArray = new char[example.Length];
reverseArray = myArray;
Array.Reverse(reverseArray);
Console.WriteLine(myArray);
Console.WriteLine(reverseArray);
}
}
}
输出如下:
drow
drow
我最好的猜测是我正在使用对象引用将myArray
的值分配给reverseArrays
,然后在reverseArray
上运行Array.Reverse()
方法。
我确定已经讨论了这个问题,但我想知道我是否能以这种方式来解释这一点。我一直在没有问题的情况下为变量分配值,如下:
int x = 10;
int y = 5;
x = y;
// x would then equal 5, correct?
感谢您的见解!
您是在代码中分配对数组的引用,而不是制作副本:
reverseArray = myArray;
因此,因此您基本上有2个引用对同一对象。您必须通过调用array.copy将myarray复制到reversearray,例如