【发布时间】:2014-11-29 01:37:41
【问题描述】:
此代码 sn-p 来自 C# 2010 for Dummies。让我感到困惑的是,当使用 Array.Sort() 方法时,我的数组副本 (sortedNames) 和原始数组 (planets) 都会被排序,即使它只调用 sortedNames 上的 Sort 方法。
第二个foreach循环引用哪个数组无关紧要,输出都是一样的。
static void Main(string[] args)
{
Console.WriteLine("The 5 planets closest to the sun, in order: ");
string[] planets = new string[] { "Mercury","Venus", "Earth", "Mars", "Jupiter"};
foreach (string planet in planets)
{
Console.WriteLine("\t" + planet);
}
Console.WriteLine("\nNow listed alphabetically: ");
string[] sortedNames = planets;
Array.Sort(sortedNames);
foreach (string planet in planets)
{
Console.WriteLine("\t" + planet);
}
}
【问题讨论】:
-
sortedNames和planets指的是同一个对象