Ja genau, aber ich halte das eben immer für falsch, korrigiert mich wenn es Fälle gibt, wo dies wirklich logisch Sinn macht.
Naja, also ich habe schon öfter Code wie diesen:
Delphi-Quellcode:
CallResult := CallAPI(...);
if CallResult = 0 then
Result := ...
else
raise ESevereError.Create('Fehlercode: ' + CallResult.ToString);
Ich finde es aber immer besser, wenn man einzelne Befehle auch separat schreibt, damit es übersichtlicher ist. Insofern würde ich das ohnehin nicht zusammenfassen wollen. Also so nach dem Motto:
Delphi-Quellcode:
if CallResult := CallAPI(...) then
raise ESevereError.Create('Fehlercode: ' + CallResult.ToString)
else
Result := ...
Theoretisch wäre das mit Pascal-Syntax durchaus umsetzbar, ohne dass es dort Mehrdeutigkeiten gäbe. Die automatische Umwandlung des Zahlenwerts in einen Boolean wäre noch zusätzlich nötig. Sonst müsste es so gemacht werden:
if (CallResult := CallAPI(...)) > 0 then
Wie gesagt, ich würde es nicht wollen.