На днях на семинаре по интерфейсам студент задал вопрос по изменению значений по ссылкам и изменению значений самих ссылок. Кода было много, поэтому записываю вопрос в упрощённом виде.
Есть код на C#:
Есть код на C#:
using System; class Program { static void Display(int[] ar, string name) { Console.Write(name + ":"); foreach (int i in ar) Console.Write(i + " "); Console.WriteLine(); } static void Main(string[] args) { int[] a = new int[3]; a[0] = 1; a[1] = 2; a[2] = 3; Display(a, "a"); int[] b; b = a; Display(b, "b"); a[1] = 5; // изменили значение Display(a, "a"); Display(b, "b"); b = new int[2]; // изменили ссылку Display(a, "a"); Display(b, "b"); } }
почему два последних вывода различны, если была команда b = new int[2]; ?
Комментариев нет:
Отправить комментарий