出于某种原因,Visual Studio 对这一行有问题:
MandatoryStakeholder.SupportDocTypeID = (String.IsNullOrEmpty(allIDValues[1]) || (allIDValues[1] == "0")) ? null : Convert.ToInt32(allIDValues[1]);
具体Convert.ToInt32(allIDValues[1])
部分。错误是“C#:这些类型不兼容'null':'int'”
但是,如果我用下面的方法模拟该逻辑,则没有问题:
if (string.IsNullOrEmpty(allIDValues[1]) || Convert.ToInt32(allIDValues[1]) == 0)
stakeHolder.SupportDocTypeId = null;
else
stakeHolder.SupportDocTypeId = Convert.ToInt32(allIDValues[1]);
MandatoryStakeholder.SupportDocTypeID
是 int 类型的?不知道为什么我可以在 if 语句中将字符串转换为 int,但不能使用 ? 操作员。