可能重複:
Type result with conditional operator in C#設置日期時間問題?爲null使用三元操作
我只是工作的一個彈出修改用戶,當我遇到了以下問題,而試圖修改用戶的死亡日期:
在這種情況下,用戶的屬性Death
是DateTime?
(可空日期時間)。
user.Death = (model.Death != null) ? DateTime.Parse(model.Death) : null;
所以我想,如果包含在模型中的價值,我將能夠簡單地檢查(model.Death是string
)包含的值,我想那個數值的日期,否則我會設置如上所示,爲空。
但是,我無法使用這種語法,因爲它不允許我使用三元運算符將user.Death
明確設置爲空,儘管user.Death = null
工作得很好。
解決方案應用於:
替換: null
與: new Nullable<DateTime>()
我想我只是想知道,爲什麼我不能明確地設置可空DateTime的財產使用三元運算符爲空?
常見問題,請查看上面的鏈接。簡短版本:DateTime和null不能相互轉換,因此無法確定表達式的返回類型。將一個或兩個投射到所需的返回類型是您需要執行的操作,或者(如您所找到的)在表達式中提供另一種類型以允許一個可以轉換爲另一個類型。 – 2011-01-25 18:53:39