По некоторым причинам Visual Studio имеет проблемы с этой линией:Convert.ToInt32 работает в выражении if, но не с? Оператор
MandatoryStakeholder.SupportDocTypeID = (String.IsNullOrEmpty(allIDValues[1]) || (allIDValues[1] == "0")) ? null : Convert.ToInt32(allIDValues[1]);
конкретно Convert.ToInt32(allIDValues[1])
части. Ошибка «C#: Эти типы не совместимы„нулевой“:" ВНУТР»
Однако, если я эмулировать эту логику ниже него не проблема:
if (string.IsNullOrEmpty(allIDValues[1]) || Convert.ToInt32(allIDValues[1]) == 0)
stakeHolder.SupportDocTypeId = null;
else
stakeHolder.SupportDocTypeId = Convert.ToInt32(allIDValues[1]);
MandatoryStakeholder.SupportDocTypeID
имеет тип Int? , Не уверен, почему я могу преобразовать строку в int в выражении if, но не с? оператор.
Я считаю, что тройка должна иметь одинаковый тип возврата в обеих ветвях. Таким образом, вам нужен «int?», То есть «null», а не просто «null». – FlyingStreudel