我有属性类型int?
,decimal?
并且正在计算中使用。如果其中任何一个的值为 null,则它必须默认为 0。我正在尝试在使用 null-coalescing 或GetValueOrDefault()
如果值为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())
+ ...
}