.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));
}