E2251 Doppeldeutiger überladener Aufruf von '%s' (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Mit dem aktuellen Funktions- oder Prozedurenaufruf und der Überladungsliste für die angegebene Funktion kann der Compiler nicht ermitteln, welche Version der Prozedur aufgerufen werden soll.


program Produce;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : integer; b : char = 'A'); overload;
begin
end;

begin
  f0(1);
end.

In diesem Beispiel macht der in einer der Versionen von f0 angegebene Standardparameter dem Compiler die Ermittlung der aufzurufenden Prozedur unmöglich.


program Solve;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : integer; b : char); overload;
begin
end;

begin
  f0(1);
end.

Eine Lösung besteht darin, den Standardparameterwert zu entfernen. Dies führt dazu, dass diejenige Funktion aufgerufen wird, die nur den Parameter Integer akzeptiert. Dies ist die einzige Möglichkeit zum Aufrufen der Einparameterfunktion.