У меня этот код:Содержит ли родовая конструкция списка, если экземпляр уже существует?
if (null == _priceComplianceSummaryList)
{
_priceComplianceSummaryList = new List<PriceComplianceSummary>();
}
ReSharper флаги его в качестве вопроса, предполагая, «Заменить„если“заявление с соответствующей отрасли» Если я согласиться, приведенный выше код изменений:
_priceComplianceSummaryList = new List<PriceComplianceSummary>();
И все же кажется, что R # часто больше типа ремней и подтяжек «кошки», призывая меня всегда проверять, что что-то недействительно до ссылки на него. Так ли это, по-видимому, безрассудное поведение с его стороны действительно просто вопрос эффективности? IOW, делает ли «новый список <>» только генерировать новый список, если переменная istance (_priceComplianceSummaryList) равна null, без необходимости явно проверять это?
«IOW, делает ли новый список <>' только генерирует новый список, если переменная istance является «null», без необходимости явно проверять это? » Нет, это не так. – Logerfo
Единственная причина, по которой я могу видеть, что R # предлагает это, потому что он может определить, что '_priceComplianceSummaryList' всегда * null, когда вы делаете эту проверку, например. вы находитесь в конструкторе и нет статической инициализации поля, что делает проверку избыточной. Нет ничего особенного в ключе 'new' при создании экземпляра' List '- после присваивания' _priceComplianceSummaryList' будет * not * быть 'null' и независимо от его значения (если таковое имеется), было бы оно« null »или нет, этого больше не будет. –
Можете ли вы показать код, в котором вы определяете эту переменную? Кроме того, какова область действия переменной? Пожалуйста, покажите все соответствующие коды. –