Хорошая или плохая практика? Инициализация объектов в геттереC#

Место общения программистов C#
Ответить
Anonymous
 Хорошая или плохая практика? Инициализация объектов в геттере

Сообщение Anonymous »

Я написал классы следующим образом (упрощенный пример):

Код: Выделить всё

[Serializable()]
public class Foo
{
public Foo()
{ }

private Bar _bar;

public Bar Bar
{
get
{
if (_bar == null)
_bar = new Bar();

return _bar;
}
set { _bar = value; }
}
}
Я инициализирую любое поле только тогда, когда вызывается геттер, и поле все еще имеет значение NULL. Я решил, что это уменьшит перегрузку, если не инициализировать свойства, которые нигде не используются.
Причина, по которой я это сделал, заключается в том, что у моего класса есть несколько свойств, которые возвращают экземпляр другого класса, который, в свою очередь, также имеет свойства с еще большим количеством классов и так далее. Вызов конструктора верхнего класса впоследствии приведет к вызову всех конструкторов всех этих классов, хотя они не всегда необходимы.
Есть ли какие-либо возражения против этой практики, кроме личных предпочтений?

Подробнее здесь: https://stackoverflow.com/questions/147 ... -in-getter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»