У меня есть свойство, которое ссылается на объект уровня сервиса, и мне нужно его каждый раз, когда я использую форму. Какова наилучшая оценка: инициализировать свойство в конструкторе или в событии загрузки формы?
Если действительность состояния формы зависит от установленного свойства, тогда установите свойство в конструкторе. Вы всегда хотите, чтобы ваши объекты находились в правильном состоянии после их создания.
Да, но будьте осторожны, что вы делаете в конструкторе формы, поскольку визуальный дизайнер будет запускать это, когда вы откроете форму для редактирования.
Если вы помещаете что-то здесь, что полагается на другие вещи, которые настроены во время выполнения, это может вызвать ошибку, и вы не сможете редактировать макет формы.
Я бы сказал, поместив его в форму Load по этой причине.
Вы должны инициализировать свойства в конструкторе. Конструктор, очевидно, вызывается только один раз для экземпляра формы. Обработчик события нагрузки будет вызываться каждый раз, когда отображается форма. Кроме того, если вы выполнили операцию инициализации, например, заполнить поле со списком, в обработчике события загрузки, вам нужно написать довольно хриплый код, чтобы предварительно выбрать значение в этом поле со списком перед отображением формы. Это только один пример. Надеюсь, что это поможет.
В конструкторе. Очень часто вы новичок в форме, и вам нужно установить некоторые свойства или сделать другие настройки до того, как вы действительно покажете форму. В этих случаях вы хотите, чтобы все ваши переменные экземпляра были настроены даже до того, как Form фактически загрузится.
Конструктор должен нести ответственность за инициализацию, если у вас нет конкретной потребности или зависимости для инициализации вашей переменной в Load Load, например, инициализации ее на что-то, что зависит от чего-то еще.