@Noortvel

Стоит ли в геттере использовать проверку на null?

Стоит ли в геттере использовать проверку на null?
Или лучше инициализировать в Awake()?Просто тогда придется для каждого класса получать переменную по отдельность, где нужна инициализация в Awake().
Вот пример:
ExampleClass ec;

public ExampleClass GetExampleClass(){
    if(ec == null){
        ec = GetComponent<ExampleClass>();
    }
    return ec;

}
  • Вопрос задан
  • 322 просмотра
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Достаточно холиварный вопрос. Все зависит от вашей внутренней логики. Но - выглядит это некрасиво и попахивает ошибками проектирования - сначала Init, который делает все GetComponent, а потом уже снаружи использование геттера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Лучше так:
И это вопрос только касательно времени инициализации, похоже на Lazy.
Если объект точно нужен - то в Awake(), если таких объектов много и запрашиваемое свойство нужно не всегда, то можно и так, разница в производительности будет незначительной.
ExampleClass ec;
public ExampleClass GetExampleClass
    {
        get
        {
            return ec ?? GetComponent<ExampleClass>();
        }
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы