为了简化代码,开发人员在使用条件运算符为可空类型的属性赋值时经常遇到挑战。以下代码片段演示了这个问题:
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : Convert.ToInt32(employeeNumberTextBox.Text),
在这种情况下,EmployeeNumber 是 Nullable
'null 之间没有隐式转换' 和 'int'
尽管 null 和 int 都是可空整数的有效值,但编译器无法确定表达式的类型仅基于真/假值。
要解决此问题,必须将其中一个值显式转换为所需的可为空类型,从而允许编译器确定表达式的类型:
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? (int?)null : Convert.ToInt32(employeeNumberTextBox.Text),
或
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : (int?)Convert.ToInt32(employeeNumberTextBox.Text),
这些修改确保正确推断表达式的类型,允许条件运算符用作有意为之。
以上是如何在 C# 中处理可空类型的条件运算符赋值?的详细内容。更多信息请关注PHP中文网其他相关文章!