目次:
定義-条件演算子とはどういう意味ですか?
C#の条件演算子は、3つのオペランド(チェックする条件)、条件が真の場合の値、および条件が偽の場合の値を取る演算子です。
条件演算子は、記号「?:」で表されます。 最初のオペランド(「?:」の前に指定)は、評価(条件)式です。 評価された式のタイプを暗黙的に 'bool'に変換できるようにするか、コンパイルエラーを回避するために演算子trueを実装する必要があります。 2番目と3番目のオペランドは、条件式のタイプを制御します。 割り当てで使用されることが多く、コンパイルエラーを生成するステートメントとしてではありません。
第1オペランド(条件式)の戻り値がtrueの場合、第2オペランドが評価されます。 それ以外の場合、3番目のオペランドが評価されます。 したがって、条件演算子の結果は、評価のために考慮される式の評価の結果です。
x?a:bとして記述された式では、オペランドx(条件式)のみがtrueを返す場合、オペランドaが評価されます。 それ以外の場合、オペランドbが評価されます。
この用語は、三項演算子またはインラインif(iif)とも呼ばれます。
Techopediaは条件演算子を説明します
C#の条件演算子は、3つの演算子(3つのオペランドを取る)のみです。 if-elseコンストラクトの代替として形成されます。これにより、より少ないコードでより簡潔になり、読みやすくなります。 コンパイル中に、C#コンパイラは3項式を分岐ステートメントに変換します。これにより、複数のifステートメントを圧縮し、ソースコードのレベルでネストを減らすことができます。 時々、三項演算子用に生成されたコードは、いくつかの命令を並べ替えることでパフォーマンスを向上させることができます。
条件演算子のプロパティは次のとおりです。
- これは右結合であり、操作は右から左にグループ化されることを意味します。
- 条件演算子記号の後に指定された2つの式のいずれかを常に評価します。 両方を評価することはありません。
- 最初のオペランドは、整数型またはポインター型である必要があります。
- 2番目と3番目のオペランドは、相互に変換可能でなければならず、他の型に相互に変換可能ではありません。
- 結果のタイプは共通タイプであり、l値です。ただし、2番目と3番目のオペランドが同じタイプで、両方ともl値である場合のみです。
- ステートメントとして使用できるのは、割り当て呼び出し、増分、減分、および新しいオブジェクト式のみです。
- 三項演算子を使用した式の評価の結果がメソッドのreturnステートメントで使用される場合、その型は、コンパイルを成功させるために、囲むメソッドの戻り値の型と一致する必要があります。
- 結果が定数でない場合、条件式のタイプは、2つのタイプのうちより一般的なタイプに基づきます。