Я не вижу способа, которым variableProducerAgreements
мог бы быть нулевым, так как у вас есть нулевая защита наверху (и при условии, что у вас нет сумасшедшего кода в получателях вашей собственности).
if (userProfile?.ProducerProfile == null)
return result;
Методы Where
и FindAll
в .NET не возвращают ноль.
Однако возможно использование условного нуля каждый раз, когда вы обращаетесь к ProducerProfile
, сбивает с толкунекоторые инструменты и люди.Поскольку вы возвращаетесь досрочно, если оно пустое, вы должны удалить их:
if (IsActingAsDelegate && userProfile.ProducerProfile.IsInactiveProducer)
{
variableProducerAgreements = userProfile.ProducerProfile.ProducerAgreements.FindAll(ag => ag.IsActive && ag.IsVariableBranchContract);
}
else
{
variableProducerAgreements = userProfile.ProducerProfile.ActiveAgreements.Where(a => a.IsVariableContract);
}
Если бы был способ обнулить его до оператора if, вы также рискнули бы NullReferenceException
, когда выполучить доступ к свойству IsInactiveProducer
.
Кроме того, рецензент должен иметь возможность объяснить свои аргументы.