簡體   English   中英

C#字符串插值。 十進制時使用字符串? 一片空白

[英]C# String interpolation. Use string when decimal? is null

我有以下C $ String插值:

decimal? approved = null;

var text = $"new {{ Approved = { approved ?? ""null"" } }}"

在這種情況下,由於approved為null,因此文本值應為:

new { Approved = null }

但我得到一個編譯錯誤:

Operator '??" cannot be applied to operands of type 'decimal?' and 'string'

如果我使用以下內容:

var text = "new {{ Approved = { approved } }}"

文本值將成為我不想要的以下內容:

new { Approved = }
decimal? approved = null;
var text = $"new {{ Approved = { (approved?.ToString() ?? "null") } }}";

空合並算子的兩邊?? 需要是相同的類型,所以調用ToString並添加空條件運算符? 確保不會拋出NRE。

您發布的代碼無法編譯。 你不能這樣做:var approved = null。 要獲得你想要的東西,你需要這樣做:

    decimal? approved = null;
    var text = new { Approved = approved == null ? "null" : approved.ToString() }

暫無
暫無

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

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