EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
Я часто нахожу, что хочу делать что-то вроде этого (EmployeeNumber
является Nullable<int>
, поскольку он является свойством в объекте dbml LINQ to SQL, где столбец допускает значения NULL). К сожалению, компилятор считает, что "нет никакого неявного преобразования между" null "и" int ", хотя оба типа были бы действительны в операции присваивания с помощью NULL int.
Оператор Null coalescing не является опцией, насколько я могу видеть из-за встроенного преобразования, которое должно произойти в строке .Text, если оно не равно null.
Насколько я знаю, единственный способ сделать это - использовать оператор if и/или назначить его в два этапа. В этом конкретном случае я нахожу это очень расстраивающим, потому что я хотел использовать синтаксис инициализатора объекта, и это назначение было бы в блоке инициализации...
Кто-нибудь знает более элегантное решение?