簡體   English   中英

給定一個可以為空的int時返回Color.FromArgb的最佳實踐C#

[英]Best practices for returning a Color.FromArgb when given an int that may be null C#

我只是很好奇,根據目前的情況,最佳實踐解決方案是什么。 我有一個以ARGB整數形式存儲顏色的數據庫,但是我允許它為可空值,因為有時可能不需要指定顏色。 使用實體框架,我生成了一個帶有ColorArgb屬性的類,用於訪問按預期返回和int的列。 我還手動添加了另一個屬性Color,該屬性返回System.Drawing.Color對象。 Color屬性幾乎介於兩者之間,因此我可以更自然的方式與生成的類進行交互。 設置很簡單:

ColorArgb = value.ToArgb();

但是,獲取有點有趣。 這是我到目前為止的內容:

return ColorArgb == null ? Color.Empty : Color.FromArgb(ColorArgb ?? 0);

如您所見,我想維持這樣的想法:該類不需要Color,因此當基礎ARGB值為null時,我將返回Color.Empty,但從未達到null合並運算符的右側。 我保證該值不為null,但是我不知道如何以最佳實踐形式顯式告知編譯器。 這不是一個嚴重的問題,但我想學習。 因此,非常感謝所有幫助。

編輯:ColorArgb是類型System.Nullable<int>

如果您需要零整數值的黑色,則更簡潔的方法可能是這樣。

    return Color.FromArgb(ColorArgb.GetValueOrDefault());

否則,要檢查可為空的整數,應檢查.HasValue屬性,而不是像這樣的空比較。

    return ColorArgb.HasValue ? Color.FromArgb(ColorArgb.Value) : Color.Empty;

如果您知道該值不為null,則不必使用null合並運算符。 而是使用ColorArgb.Value

return ColorArgb == null ? Color.Empty : Color.FromArgb(ColorArgb.Value);

暫無
暫無

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

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