Когда писал на с++ все говорили, что выбрасывать исключение в конструкторе это плохая идея, так как может создать утечку памяти, а что вы можете сказать о исключениях выбрасываемых в конструкторах классов написанных на c#?
public FilePathExplorer(string _path)
{
if (_path == null)
throw new ArgumentNullException("Argument _path can not be null.");
this._path = _path;
}
Выбрасывание исключений из конструктора - это как раз таки единственно правильный способ сообщить вызывающему коду, что объект не может быть создан. Это правило работает как в C++, так и C#.
Попытки же использовать какой-то флаг типа bool initialized не приводят ни к чему хорошему. Этот флаг можно элементарно забыть проверить и пытаться пользоваться объектом, который был как бы создан (конструктор отработал), но фактически (по логике программы) не инициализирован должным образом.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости