簡體   English   中英

c#:從可空類型中分配

[英]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() 對於decimaldecimal.Zero ,對於int它也是0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM