如果我没有弄错这个严重的错误,那么这种行为对我来说很奇怪。我将在下面发布示例代码,而不是解释,请告诉我为什么我得到输出 x 而不是 y。
private void button1_Click(object sender, EventArgs e)
{
List<int> l = new List<int>() { 1, 2, 3 };
Fuss(l);
MessageBox.Show(l.Count.ToString());
}
private void Fuss(List<int> l)
{
l.Add(4);
l.Add(5);
}
我假设输出应该是 3。但我得到的输出是 5。我知道如果我这样做,输出可以是 5:
private void button1_Click(object sender, EventArgs e)
{
List<int> l = new List<int>() { 1, 2, 3 };
Fuss(ref l);
MessageBox.Show(l.Count.ToString());
}
private void Fuss(ref List<int> l)
{
l.Add(4);
l.Add(5);
}