Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
var a = new House();
var b = new House();
var c = new House();
Console.WriteLine(House.Count + " " + a.Number);
class House
{
public static int Count { get; private set; }
public int Number { get; private set; }
public House() => Number = ++Count;
}3 1
- Ждать
1 1: статическое свойство одно на весь класс, поэтому каждый вызов конструктора увеличивает тот жеCount. - Ждать, что
a.Numberследует заCount: присваивание копирует значение один раз, и у первого дома остаётся1.
- Что напечатает программа, если убрать у
Countсловоstatic? - Почему
a.Countне компилируется, аHouse.Countкомпилируется?