[英]c#: assigning from nullable types
如果我有一個可以為空的“十進制?d”並且我想將d分配給不可為空的e,那么正確的方法是什么?
decimal e = d ?? 0.0;
decimal e;
if(d.HasValue)
{
e = d.Value;
}
你需要確定你是否可以,即可空的d是否有值。
if (d.HasValue) { e = d.Value; } else { /* now what */ }
另一個有趣的案例出現在你想要使用三元組分配給可空的地方,在這種情況下你必須進行強制轉換以使兩個分支具有相同的類型。
d = foo ? 45 : (int?)null;
注意null to(int?)的情況,以便兩個分支具有相同的類型。
decimal e;
if (d.HasValue)
{
e = d.Value;
}
我通常會這樣做:
decimal e = d.HasValue ? d.Value : decimal.Zero;
這里的原因是我是三元操作的粉絲,我通常會分配我得到的值,如果我已經為我正在處理的類型執行了失敗的TryParse()
。 對於decimal
。 decimal.Zero
,對於int
它也是0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.