Bedingter Operator

Definition - Was bedeutet Bedingter Operator?

Ein bedingter Operator in C # ist ein Operator, der drei Operanden (zu prüfende Bedingungen) akzeptiert, den Wert, wenn die Bedingung wahr ist, und den Wert, wenn die Bedingung falsch ist.

Ein bedingter Operator wird durch das Symbol '?:' Dargestellt. Der erste Operand (angegeben vor dem '?:') Ist der auswertende (bedingte) Ausdruck. Es muss so sein, dass der Typ des ausgewerteten Ausdrucks implizit in 'bool' konvertiert werden kann oder dass der Operator true implementiert wird, um Kompilierungsfehler zu vermeiden. Der zweite und dritte Operand steuern die Art des bedingten Ausdrucks. Es wird häufiger bei der Zuweisung verwendet und nicht als Anweisung, die zu Kompilierungsfehlern führt.

Wenn der Rückgabewert des ersten Operanden (bedingter Ausdruck) wahr ist, wird der zweite Operand ausgewertet. Andernfalls wird der dritte Operand ausgewertet. Daher ist das Ergebnis des bedingten Operators das Ergebnis der Bewertung des zur Bewertung berücksichtigten Ausdrucks.

Für einen Ausdruck, der als x? A: b angegeben ist, wird der Operand a ausgewertet, wenn nur der Operand x (der bedingte Ausdruck) true zurückgibt. Andernfalls wird der Operand b ausgewertet.

Dieser Begriff wird auch als ternärer Operator oder Inline-if (iif) bezeichnet.

Technische.me erklärt den bedingten Operator

Ein bedingter Operator ist der einzige ternäre Operator (mit drei Operanden) in C #. Es bildet eine Alternative zum if-else-Konstrukt, das eine bessere Übersichtlichkeit mit weniger Code und eine bessere Lesbarkeit bietet. Während der Kompilierung übersetzt der C # -Compiler den ternären Ausdruck in Verzweigungsanweisungen, die mehrere if-Anweisungen komprimieren und die Verschachtelung auf der Ebene des Quellcodes reduzieren können. Manchmal kann der für einen ternären Operator generierte Code die Leistung steigern, indem einige der Anweisungen neu angeordnet werden.

Eigenschaften eines bedingten Operators sind:

  • Es ist rechtsassoziativ, was bedeutet, dass Operationen von rechts nach links gruppiert sind.
  • Es wird immer einer der beiden Ausdrücke ausgewertet, die nach dem bedingten Operatorsymbol angegeben sind. Beides wird nie bewertet.
  • Der erste Operand muss vom Integral- oder Zeigertyp sein.
  • Der zweite und dritte Operand müssen ineinander konvertierbar sein und dürfen nicht gegenseitig in einen anderen Typ konvertierbar sein.
  • Der Ergebnistyp ist der allgemeine Typ, der ein l-Wert ist, jedoch nur, wenn sowohl der zweite als auch der dritte Operand vom gleichen Typ sind und beide l-Werte sind.
  • Als Anweisung können nur Zuweisungsaufruf, Inkrementieren, Dekrementieren und neuer Objektausdruck verwendet werden.
  • Wenn das Ergebnis einer Auswertung eines Ausdrucks mit dem ternären Operator in einer Methodenrückgabeanweisung verwendet wird, sollte sein Typ für eine erfolgreiche Kompilierung mit dem Rückgabetyp der einschließenden Methode übereinstimmen.
  • Wenn das Ergebnis keine Konstante ist, basiert der Typ des bedingten Ausdrucks auf dem allgemeineren der beiden Typen.

Diese Definition wurde im Kontext von C # geschrieben