スポンサーリンク

C#の三項演算子(?:)の使い方と注意点をわかりやすく解説

C#でよく使われる構文の一つに、三項演算子(?:)があります。コードを短く記述できる便利な機能ですが、使い方を誤ると可読性が下がってしまうこともあります。

この記事では、C#初心者向けに三項演算子の基本的な使い方と、よくある注意点について丁寧に解説します。備忘録としても活用できるよう、サンプルコードも掲載しています。

三項演算子とは?

三項演算子は、条件に応じて異なる値を返すことができる演算子です。

構文は次のとおりです:

条件式 ? 真の場合の値 : 偽の場合の値;

例:基本的な使い方

int score = 80;
string result = score >= 60 ? "合格" : "不合格";
Console.WriteLine(result); // 合格

この例では、scoreが60以上かどうかを条件にして、「合格」か「不合格」を判定しています。

if文との違い

三項演算子は、値を返す式であり、代入や表示などの文の中に組み込むことができます。

同じ処理をif文で書くと次のようになります:

string result;
if (score >= 60)
{
    result = "合格";
}
else
{
    result = "不合格";
}

可読性の面ではif文が優れていますが、三項演算子は簡潔に書ける点がメリットです。

ネスト(入れ子)には注意

三項演算子を入れ子にすることも可能ですが、可読性が著しく下がるため注意が必要です。

string grade = score >= 80 ? "A" : score >= 60 ? "B" : "C";

このようなネストはif-else文で書き直したほうが無難です。

値の型に注意する

三項演算子の左右の値は、同じ型または互換性のある型である必要があります。

// エラーになる例
var result = true ? "OK" : 0; // stringとintで型が一致しない

適切なキャストを行うか、同じ型の値を返すようにしましょう。

三項演算子の主な用途

  • 条件に応じたメッセージの表示
  • UIでのラベルや色の切り替え
  • ログやデバッグ出力の簡素化
  • 単純な条件分岐を1行で書きたい場合

まとめ

C#の三項演算子(?:)は、コードを簡潔に保ちたいときに非常に便利な構文です。特に条件によって異なる値を代入・表示したい場面で活用できます。

ただし、ネストしすぎたり、型の不一致があると可読性や安全性を損なうこともあります。簡潔に書ける分、適切に使い分ける意識が大切です。

簡単な分岐であれば積極的に三項演算子を活用し、複雑なロジックにはif文を選ぶとよいでしょう。

.NET
スポンサーリンク
シェアする
trelab