Если вы не объявляете конструктор без параметров явно, тип структуры предоставляет конструктор без параметров, поведение которого следующее:
- Если тип структуры имеет явные конструкторы экземпляров или не имеет инициализаторов полей, неявный Конструктор без параметров создает значение по умолчанию для типа структуры, независимо от инициализаторов полей (…).
- Если тип структуры не имеет явных конструкторов экземпляров и имеет инициализаторы полей, компилятор синтезирует общедоступный конструктор без параметров, который выполняет указанную инициализацию полей (…).
Код: Выделить всё
struct S {
public int X = 1;
}
class Program {
static void Main() { System.Console.WriteLine(new S().X); }
}
Код: Выделить всё
struct S {
public int X = 1;
public S(int x) { X = x; }
}
class Program {
static void Main() { System.Console.WriteLine(new S().X); }
}
Подробнее здесь: https://stackoverflow.com/questions/698 ... c-sharp-10
Мобильная версия