如果我有一個可爲空的「decimal?d」,並且我想將d指定給不可爲空的e,那麼適當的方法是什麼?c#:從可空類型分配
4
A
回答
16
decimal e = d ?? 0.0;
1
decimal e;
if (d.HasValue)
{
e = d.Value;
}
2
您需要確定您是否可以,即是否可爲空的d有值。
if (d.HasValue) { e = d.Value; } else { /* now what */ }
您要使用的三元,在這種情況下,你要投,使兩個分支有相同的類型分配給一個可空另一個有趣的案例出現相當普遍。
d = foo ? 45 : (int?)null;
請注意大小寫爲(int?),以便兩個分支都具有相同的類型。
10
decimal e;
if(d.HasValue)
{
e = d.Value;
}
1
我通常像這樣的東西去:
decimal e = d.HasValue ? d.Value : decimal.Zero;
這裏的原因是,我是三元操作的粉絲,我通常會指派,如果我有我會得到價值爲我正在處理的類型提供了一個失敗的TryParse()
。對於decimal
將是decimal.Zero
,對於int
也將是0
。
相關問題
- 1. 可空DatabaseGeneratedOption是不能分配給參數類型可空DatabaseGeneratedOption
- 2. 從不兼容類型中分配ID可空的
- 3. C++類的分配可變
- 4. 分配給空引用類型
- 5. 在C中使用malloc爲typedef'd類型分配空間
- 6. 在vb.net中分配可空類型對象的錯誤
- 7. 從一個空類型轉換爲另一種可空類型
- 8. 不兼容的類型分配從類型類型「memstruct」「詮釋」
- 9. 如何分配相同類型的分類內存空間
- 10. C#分配,二進制文件類型
- 11. 值分配給在C#類型的byte []
- 12. C#:可爲空類型(int?)對象?
- 13. C# - 列表存儲可空類型
- 14. 可空雙類型Excel範圍在c#
- 15. C#轉換爲可空類型?
- 16. 什麼是C#中的可空類型?
- 17. C#中的可空類型轉換?
- 18. 什麼是C#中的可空類型?
- 19. C#可爲空類型和值屬性
- 20. C#可空類型的問題
- 21. 數組類型'int [16]'不可分配
- 22. 訂閱'不可分配到類型
- 23. TypeScript:類型的參數不可分配
- 24. 可分配的用戶派生類型
- 25. 如何創建可分配任何類型的C++
- 26. 可以int值分配給ID類型+目標C
- 27. 空泛型類型C#
- 28. C語言的 - 從兼容的指針類型[默認啓用]類型分配
- 29. 泛型和可空類型
- 30. C#比較本機類型與可爲空類型(Int32與Int32?)
當d爲空時應該採用什麼值? – 2009-05-01 03:06:42
我可以說-1可能'System.InvalidOperationException',但我不會。 – Phaedrus 2009-05-01 03:09:29
這個答案是現在,但只有複製Phaedrus的答案後。 – 2009-05-01 03:13:29