[英]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.