Перегрузка функции типом возврата?
имеет очень подробный ответ на рациональном на перегрузке функции типом возврата, и от того, что я вижу, что Delphi не позволяет это, но является там какими-либо обходными решениями для перегрузки функции на основе другого типа возврата в Delphi?
Неявные и явные операторы преобразования для записей разрешения разрешения по возврату Тип возврата: а именно тип преобразования типа:
type
TFoo = record
class operator Implicit(const AFoo: TFoo): Integer;
class operator Implicit(const AFoo: TFoo): string;
end;
в зависимости от контекста, используя значение типа TFOO
позвонит соответствующему неявному преобразованию. Если пытаться использовать значение типа TFOO
, в качестве аргумента для перегруженной процедуры, который может принимать либо целое или строку в этом положении, произойдет ошибка перегрузки:
test.pas(33) Error: E2251 Ambiguous overloaded call to 'Q'
+ Test.pas(19) Related method: procedure Q(Integer);
+ Test.pas(24) Related method: procedure Q(const string);
Вы можете взять «результат» в качестве параметра.
procedure Blah( InVar : word; out OutVar : Byte ); overload;
procedure Blah( InVar : word; out OutVar : String ); overload;