Если я не ошибаюсь, это поведение странно для меня. Вместо того, чтобы объяснять, я отправлю пример кода ниже и, пожалуйста, скажите мне, почему я получаю выходные данные 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);
}