В C# в структурах запрещено использовать конструктор без параметров, так как он используется для инициализации членов структуры (обнуления выделяемой памяти). Также в структурах мы обязаны инициализировать все поля структуры в случае определения конструктора с параметрами. Но в классах ни первое, ни второе не обязательно. Как тогда в классах работает инициализация полей класса дефолтными значениями?
Все поля типов значений инициализируются значениями по умолчанию (0 для System.Int32, например), все поля ссылочных типов инициализируются нулевыми ссылками (null).
Значения полей класса инициализируются значениями по умолчанию.
Например,
public class TestClass
{
public int _int;
public string _string;
}
TestClass testClass = new TestClass();
int i = testClass._int; //0
string s = testClass._string; //null
Сборка персонального компьютера от Artline: умный выбор для современных пользователей