Вам нужно создать экземпляр, только если вы планируете использовать этот экземпляр. Например:
Response response = new Response();
response.Types.Add(someObject);
В приведенном выше коде, если создание объекта Response
не инициализирует поле Types
, тогда будет выброшено NullReferenceException
. Однако в коде, который у вас есть, вы не используете поле, а вместо этого присваиваете полю:
Response response = new Response
{
Message = serviceResponse.Message,
Types = serviceResponse.Types
};
Если вы инициализируете поле Types
при создании объекта, этот экземпляр будет почти немедленно отброшен и заменен на экземпляр, который вы ему присвоили.
Итак, нет, в приведенном вами примере вам технически не нужно инициализировать свойство. Однако , имейте в виду, что, не инициализируя свойство, класс сохраняет предположение, что потребляющий код будет инициализировать его. В этом одном примере это предположение подтверждается. Но как насчет будущих примеров? Будет ли это предположение всегда подтверждаться в будущем? Вы можете это гарантировать?
Как правило, хорошая идея для инициализации свойств коллекции. Это не требуется , и не делает очень незначительным улучшением производительности, потому что вы не создаете экземпляр объекта, просто чтобы сразу выбросить его и заменить. Но есть риск, что ваш потребляющий код должен всегда не забывать выполнять эту инициализацию.