2-й и 3-й операнды для? Оператор должен иметь совместимые типы. Они не в вашем случае, 2-й является нулевым, 3-й является int. Не существует неявного преобразования из int в null или из null в int. Только явные, такие как приведение к объекту или Nullable<int>
. Вы можете рассмотреть возможность использования этого:
afunction(String.IsNullOrEmpty(Request["foo"]) ? default(int?) : int.Parse(Request["foo"]));
Здесь нет проблем, поскольку является неявным преобразованием из int в int?