Thomas Bandt

Über mich | Kontakt | Archiv

[C#] Bedingungsoperator

Damit ich es mir endlich einmal merke:

"Gelegentlich auch Ternär- oder Frageoperator genannt. Dieser Bedingungsoperator wählt basierend auf einem booleschen Ausdruck aus zwei Ausdrücken aus.

int    value = (x < 10) ? 15 : 5;

In diesem Beispiel wird der Steuerungsausdruck (x < 10) ausgewertet. Ist dieser wahr, dann ist der Operatorwert der erste Ausdruck nach dem Fragezeichen, in diesem Fall 15. Ist der Steuerungsausdruck falsch, dann ist der Operatorwert der Ausdruck nach dem Doppelpunkt, hier 5."

Quelle.

Kommentare

  1. Peter schrieb am Mittwoch, 26. April 2006 15:32:00 Uhr:

    Auch wenn ich den Frageoperator eigentlich aufgrund seiner prägnanten Kürze sehr mag, habe ich mir wieder abgewöhnt, ihn zu verwenden, und zwar aus einem einfachen Grund: Es werden immer alle drei Ausdrücke ausgewertet!

    Es funktioniert also weder:

    value = (nenner <> 0) ? (zaehler / nenner) : 0;

    noch:

    value = IsCached() ? GetFromCache() : DoExpensiveCalculation;

    Gegen (jedenfalls meine) Intuition, deswegen habe ich mir striktes IF THEN ELSE angewöhnt, nachdem ich _einmal zu viel_ in diese Falle getappt bin ;-)


« Zurück  |  Weiter »