Если есть следующее утверждение:
return this.revision.HasValue ? this.revision : throw new InvalidOperationException();
Я думал, что это скомпилируется, поскольку бросок нарушает нормальный поток, и не должно быть проблем с тем, чтобы не возвращать значение, но оно не строится.
Есть ли способ исправить это утверждение или почему это не разрешено?
Спасибо.
EDIT: this.revision имеет значение int? и метод возвращает int.
EDIT 2: если у меня есть этот метод
public int Test()
{
throw new Exception();
}
Компилятор не жалуется на то, что не возвращает значение, я ожидал того же от встроенного if ... по крайней мере, мы знаем, что это можно сделать, как это уже сделано в методах.
throw
не является типом, а условный оператор не являетсяif-else
. - person Tim Schmelter   schedule 22.11.2013