首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 三元條件運算子 ?::型別推導規則、右結合性與最佳實務

     編輯:關於C語言

條件運算子 ?: 是 C# 唯一的三元運算子,語法:condition ? consequent : alternative。

執行語意

  1. 先評估 condition(必須為 bool)。
  2. true → 評估 consequent,結果為其值。
  3. false → 評估 alternative,結果為其值。
  4. 絕不同時評估兩分支(短路)。

型別推導規則(依序嘗試)

  1. 兩分支型別相同 → 該型別。
  2. consequent 隱含轉換 → alternative,無反向 → alternative 型別。
  3. alternative 隱含轉換 → consequent,無反向 → consequent 型別。
  4. 否則編譯錯誤(需顯式轉型)。

範例


int? a = true ? 1 : 2;        // int (兩邊皆 int)
double b = true ? 1 : 2.0;    // double (int→double 隱含)
var c = true ? 1 : "text";    // 錯誤:無隱含轉換
var d = true ? (object)1 : "text"; // object (兩邊皆→object)

右結合性

a ? b : c ? d : e 等價 a ? b : (c ? d : e)。建議加括號明確。

最佳實務

  • 簡單單行指派/回傳 → 使用 ?:。
  • 複雜邏輯、多敘述 → 改用 if-else 區塊,可讀性更高。
  • 避免巢狀 ?:(難除錯、難閱讀)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved