簡體   English   中英

如果+可空類型(C#)的簡寫

[英]Shorthand if + nullable types (C#)

以下返回

無法確定條件表達式的類型,因為“double”和“<null>”之間沒有隱式轉換

aNullableDouble = (double.TryParse(aString, out aDouble) ? aDouble : null)

之所以我不能只使用aNullableBool而不是使用帶有aDouble的往返是因為aNullableDouble是生成的EntityFramework類的一個屬性,它不能用作超標。

aNullableDouble = double.TryParse(aString, out aDouble) ? (double?)aDouble : null;

只需將語法吹成完整語法而不是速記......它會更容易閱讀:

aNullableDouble = null;
if (double.TryParse(aString, out aDouble))
{
    aNullableDouble = aDouble;
}
aNullableDouble = (double.TryParse(aString, out aDouble)?new Nullable<double>(aDouble):null)

使用可空類型的有趣副作用是你不能真正使用速記IF。 速記IF必須從兩個條件返回相同的Type,並且在任何一種情況下都不能為null。 所以,施放或寫出來:)

.NET支持可空類型 ,但是通過聲明它們,你必須稍微區別對待它們(因為,可以理解的是,現在通常是值類型的東西是一種引用 - ish)。

如果您最終必須在可空雙打和常規雙打之間進行太多轉換,這也可能沒有多大幫助......對於自動生成的類集合可能很容易。

暫無
暫無

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

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