Delphi-Quellcode:
function aaa: string;
begin
ShowMessage('aaa');
Result := 'a';
end;
function bbb: string;
begin
ShowMessage('bbb');
Result := 'b';
end;
ShowMessage(IfThen(Random(2) = 0, aaa, bbb);
Hier siehst du aaa, bbb und dann noch a oder b.
Das Neue würde nur aaa und a ODER bbb und b anzeigen.
Was ein kompliziertes Beispiel.
Wie wärs denn damit:
Delphi-Quellcode:
var z := if x = 0 then 0 else y div x;
// vs.
var z := IfThen(x = 0, 0, y div x);
Wenn x 0 ist, knallt die Variante mit IfThen, aber der ternäre Operator nicht. Denn wie Du schon richtig schriebst, eine Funktion evaluiert alle Parameter vor Ausführung, der Operator nicht.