最佳答案
请看以下节目:
class Test
{
List<int> myList = new List<int>();
public void TestMethod()
{
myList.Add(100);
myList.Add(50);
myList.Add(10);
ChangeList(myList);
foreach (int i in myList)
{
Console.WriteLine(i);
}
}
private void ChangeList(List<int> myList)
{
myList.Sort();
List<int> myList2 = new List<int>();
myList2.Add(3);
myList2.Add(4);
myList = myList2;
}
}
我假设 myList
将通过 ref
,并且输出将
3
4
该列表确实是“由 ref 传递的”,但是只有 sort
函数生效。以下语句 myList = myList2;
无效。
所以输出实际上是:
10
50
100
你能帮我解释一下这种行为吗?如果 myList
确实不是 通过裁判(因为它似乎从 myList = myList2
不起作用) ,myList.Sort()
如何起作用?
我甚至假设这一声明不会生效,结果是:
100
50
10