Хорошая или плохая практика? Инициализация объектов в геттере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

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