У меня есть свойства типа int?
и decimal?
, которые используются в расчете.Если значение любого из них равно нулю, оно по умолчанию равно 0. Я пытаюсь выбрать между использованием null-coalescing или GetValueOrDefault()
, который также будет по умолчанию равен 0, если значение равно null
.Какой подход будет лучше с точки зрения читабельности и производительности (если есть какие-либо заметные различия)?
Первый:
public decimal MyMethod(int memberId)
{
var dto = GetDtoValue(memberId);
return (dto.PropertyOne ?? 0)
+ (dto.PropertyTwo ?? 0)
+ (dto.PropertyThree ?? 0)
- (dto.PropertyFour ?? 0)
+ ...
}
Второй:
public decimal MyMethod(int memberId)
{
var dto = GetDtoValue(memberId);
return dto.PropertyOne.GetValueOrDefault())
+ dto.PropertyTwo.GetValueOrDefault())
+ dto.PropertyThree.GetValueOrDefault())
- dto.PropertyFour.GetValueOrDefault())
+ ...
}