c#無效類型和三元運算符:解決類型不一致
在C#中,使用具有無效類型的三元運算符()(例如? :
)可能會導致“無法確定條件表達式的類型...”。當三元操作員的真實分支和錯誤分支具有不兼容的類型時,就會發生這種情況。 例如,int?
失敗是因為GetBoolValue() ? 10 : null
是一個10
>,而int
表示沒有值。 編譯器無法決定表達式的單一類型。 null
>
可以分配給無效的整數(null
),而平原int?
不能隱式成為int
>。
int?
以下幾種糾正這一點的方法:
>將整數施放到>:>
int?
1 |
|
::null
int?
1 |
|
>關鍵字:default
default
關鍵字提供了一種類型安全的方法來獲取類型的默認值,這是
1 |
|
這些解決方案確保類型的一致性,從而使編譯器可以正確地將三元表達式的類型正確地推斷為int?
,從而解決了編譯誤差。 選擇最適合您的編碼樣式和可讀性首選項的方法。
以上是為什麼我的C#三元運算符因無效類型而失敗:`getBoolValue()? 10:null`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!