共用方式為


?: 運算子 (C# 參考)

條件運算子 (?:) 是根據布林 (Boolean) 運算式的值,決定傳回兩個值的其中一個。以下是條件式運算子的語法。

condition ? first_expression : second_expression;

備註

condition 必須評估為 true或false。如果 condition 為 true,則評估 first_expression 並產生結果。如果 condition 為 false,則評估 second_expression 並產生結果。只會評估兩個運算式的其中一個。

first_expression和second_expression必須相同,或者必須有從一種類型到另一種類型的隱含轉換。

你可以使用條件運算子更精確地表示可能需要 if-else 結構的計算。例如,下列程式碼使用 first if陳述式,然後是條件式運算子分類為正或負整數。

int input = Convert.ToInt32(Console.ReadLine());
string classify;

// if-else construction.
if (input < 0)
    classify = "negative";
else
    classify = "positive";

// ?: conditional operator.
classify = (input < 0) ? "negative" : "positive";

條件式運算子是條件運算子是右向關聯。運算式 a ? b : c ? d : e 會評估為 a ? b : (c ? d : e),而不是(a ? b : c) ? d : e。

條件運算子不能被多載。

範例

class ConditionalOp
{
    static double sinc(double x)
    {
        return x != 0.0 ? Math.Sin(x) / x : 1.0;
    }

    static void Main()
    {
        Console.WriteLine(sinc(0.2));
        Console.WriteLine(sinc(0.1));
        Console.WriteLine(sinc(0.0));
    }
}
/*
Output:
0.993346653975306
0.998334166468282
1
*/

請參閱

參考

C# 運算子

if-else (C# 參考)

概念

C# 程式設計手冊

其他資源

C# 參考