Einzelnen Beitrag anzeigen

Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#3
  Alt 21. Jun 2002, 16:18
Hi jbg,

du hast ganz recht, allerdings ist es manchmal sinnvoller, Result am Funktionsanfang auf True und nicht auf False zu stellen. Das umzuschreiben würde einen Code teilweise unverständlich und umständlich machen, deshalb mache ich es so.

Was das goto angeht: Schön ist es nicht, aber manchmal doch recht sinnvoll. Der try..except..end-Block ist, das musst du zugeben, auch sehr viel eleganter also goto:
Code:
function Test(h: THandle): Boolean;
begin
  try
    if (h = INVALID_HANDLE_VALUE) then
      raise EResultFalse.Create(''); // Exception auslösen
  except
    on EResultFalse do begin
      Result := False;
      Exit;
    end;
  end;
end;
statt
Code:
function Test(h: THandle): Boolean;
label
  resultfalse, toend;
begin
  Result := False;
  if (h = INVALID_HANDLE_VALUE) then
    goto resultfalse;
  // ...
  goto toend;
  resultfalse:
  Result := True;
  toend:
  // ...
end;
Aber da die Kritik an dieser Methode immer größer wird: Ich werde mich nicht daran festbeißen, ich bestehe absolut nicht darauf, ihn durchzubringen.

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat