Посмотрите на определение параметра bool? saveChangesError
The?означает, что тип bool может быть обнуляемым.Это может быть True
|False
|Null
.
Поскольку теперь у него есть три значения, вы не можете просто проверить true
|false
.Вы также должны проверить на нулевое значение.
GetValueOrDefault()
добавляется к обнуляемым типам, что в точности соответствует описанию метода.Если параметр имеет значение, он вернет его, если он не вернет значение по умолчанию (в данном случае это false ).
Итак, чтобы прервать оператор ifбыло бы что-то вроде
if (saveChangesError.HasValue && saveChangesError == true)
{
//...
}
Использование метода просто делает его более кратким.