.NET 4.x Разное изменение значений полей при разных режимах отладки - C#
Формулировка задачи:
Есть 2 класа:
и
Проблема заключается в следующем: При пошаговой проверке заполнения массива все работает правильно. Каждый объект имеет свои значения полей. Но при обычном запуске значение первого объекта дублируется на все остальные объекты в массиве.
Почему?!
Скриншоты (на первом пошаговая отладка, на втором запус с прерыванием):
using System; namespace Zoo { class Cat { private int heigth; private int age; #region getters&setters public int getHeigth() { return heigth; } public void setHeigth(int a) { if (a > 5) { heigth = a; } } public int getAge() { return age; } public void setAge(int a) { age = a; } #endregion public void murr() { Console.WriteLine("мурр..."); } } }
using System; namespace Zoo { class Program { static void ZapCat(Cat g) { Random r = new Random(); g.setAge(r.Next(100, 300)); g.setHeigth(r.Next(0, 99)); } static void Main(string[] args) { Cat [] c = new Cat[2]; c[0] = new Cat(); ZapCat(c[0]); c[1] = new Cat(); ZapCat(c[1]); Console.WriteLine("|{0, -10}|{1,-10:0}|{2,-10:0}|", "Назва", "Зрiст", "Вiк"); Console.WriteLine("|{0, 10}|{1,10:0}|{2,10:0}|", c[0].GetType(), c[0].getHeigth(), c[0].getAge()); Console.WriteLine("|{0, 10}|{1,10:0}|{2,10:0}|", c[1].GetType(), c[1].getHeigth(), c[1].getAge()); Console.ReadLine(); } } }
Решение задачи: «.NET 4.x Разное изменение значений полей при разных режимах отладки»
textual
Листинг программы
Random r = new Random(); static void ZapCat(Cat g) { g.setAge(r.Next(100, 300)); g.setHeigth(r.Next(0, 99)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д