Позвольте мне перевернуть ваш вопрос: почему бы мне не написать один конструктор для моего класса, чтобы его можно было использовать?
Причина этого в том, что компилятор C # выдаст вам конструктор по умолчанию, когда вы не пишете никаких конструкторов. Просто чтобы нам было легче. Однако, когда вы указываете один или несколько конструкторов, компилятор C # предполагает, что вы указали все необходимые конструкторы. В этом случае он не может использовать конструктор по умолчанию, потому что не у всех классов должен быть конструктор по умолчанию.
Хотя эта функция C # хороша для разработчиков приложений, для разработчиков фреймворков она может раздражать. Некоторые команды в Microsoft всегда пишут конструктор по умолчанию в своем коде C #, потому что, когда у класса нет конструктора (написанного на коде), легко допустить ошибку, добавив альтернативный конструктор в следующем выпуске, без явного указания конструктора по умолчанию. В этом случае новый выпуск будет несовместим, потому что конструктор по умолчанию будет отсутствовать.