E2250 Es gibt keine überladene Version von '%s', die man mit diesen Argumenten aufrufen kann (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Es wurde versucht, eine überladene Funktion aufzurufen, die mit der aktuellen Gruppe überladener Prozeduren nicht zurückgeschrieben werden kann.


program Produce;

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

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

begin
  f0(1,2);
end.


Für die überladene Prozedur f0 gibt es zwei Versionen, eine übernimmt einen char-Parameter, die andere einen Integer-Parameter. Der Aufruf von f0 verwendet jedoch einen Gleitkommaparameter, der vom Compiler weder auf den Typ Char noch auf den Typ Integer zurückgeschrieben werden kann.


program Solve;

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

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

begin
  f0(1);
end.

Für dieses Problem gibt es zwei Lösungen: Entweder geben Sie einen Parametertyp an, der in Übereinstimmung mit der überladenen Prozeduren zurückgeschrieben werden kann, oder Sie erzeugen eine neue Version der überladenen Prozedur mit einem Parameter des im Funktionsaufruf verwendeten Typs.

In diesem Beispiel wurde der Parametertyp so geändert, dass er mit einer der vorhandenen überladenen Versionen von f0 übereinstimmt.