EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
Tôi thường thấy mình muốn làm những việc như thế này (EmployeeNumber
là Nullable<int>
vì nó là thuộc tính trên đối tượng dbQ LINQ-to-SQL trong đó cột cho phép giá trị NULL). Thật không may, trình biên dịch cảm thấy rằng "Không có chuyển đổi tiềm ẩn giữa 'null' và 'int'", mặc dù cả hai loại sẽ hợp lệ trong một phép toán gán cho một int vô giá của riêng chúng.Phân bổ toán tử có điều kiện với các kiểu Nullable <value>?
Toán tử kết hợp song song không phải là một tùy chọn xa như tôi có thể thấy do chuyển đổi nội tuyến cần phải xảy ra trên chuỗi .Text nếu nó không phải là rỗng.
Theo như tôi biết, cách duy nhất để làm điều này là sử dụng câu lệnh if và/hoặc gán nó theo hai bước. Trong trường hợp cụ thể này tôi thấy rằng rất bực bội vì tôi muốn sử dụng cú pháp khởi tạo đối tượng và nhiệm vụ này sẽ nằm trong khối khởi tạo ...
Bất cứ ai biết một giải pháp thanh lịch hơn?
Kiểm tra bài viết liên quan đến blog của Eric Lippert: [Gõ lời phàn nàn, phần một] (http://blogs.msdn.com/ericlippert/archive/2006/05/24/type-inference-woes-part -one.aspx) – CodesInChaos
[Lỗi trình biên dịch ** CS0173 **] (http://msdn.microsoft.com/en-us/library/vstudio/hb47kt2f%28v=vs.120%29.aspx) đưa tôi đến đây. – DavidRR