当我在运行以下程序时,我正在努力解决我遇到的问题:
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
,然后在Array.Reverse()
上运行reverseArray
方法
虽然我确定已经讨论过这个问题,但我想知道我是否可以通过这种方式得到解释。我总是为变量赋值而不会出现问题,如下所示:
int x = 10;
int y = 5;
x = y;
// x would then equal 5, correct?
感谢您的见解!
答案 0 :(得分:2)
您正在代码中为数组分配引用,而不是复制:
reverseArray = myArray;
因此,您基本上有2个对同一对象的引用。您必须通过调用Array.Copy将myArray复制到reverseArray,例如