Экземпляр уже полностью существует до начала конструктора (действительно, вы даже можете полностью обойти все конструкторы и все же получить действительный экземпляр) - это просто означает, что любой код инициализации, который не выполнялся, победил ' т выполнил.
Например, , хотя это не очень хорошая идея , вы можете передать экземпляр объекта из типа во время конструктора, т.е.
_camera.HereIsMe(this);
или
SomeExternalObject.Track(this);
так что ничего тоже не произойдет, потому что для среды выполнения этот объект существует как обычный и должен обрабатываться должным образом. Однако в некоторых случаях удобнее использовать на фабрике:
public static YourType Create(args) {
// TODO: perform enough work to validate
return new YourType(validated args);
}
Но повторить; если есть проблема , то бросок из конструктора не является неожиданным и не вреден.