我想在元类参数中提供默认值:

type
  TMyClass = class
  end;

type
  TMyClassMetaClass = class of TMyClass;

procedure MyProcedure(const AMetaClass: TMyClassMetaClass = TMyClass);

有可能的?在Delphi2009中,它给了我错误:E2026预期的常量表达式

最佳答案

根据语言规则,元类不是常量表达式。因此,最好的选择是使用重载:

procedure MyProcedure(const AMetaClass: TMyClassMetaClass); overload;
procedure MyProcedure; overload;

并在执行中:
procedure MyProcedure(const AMetaClass: TMyClassMetaClass);
begin
  ....
end;

procedure MyProcedure;
begin
  MyProcedure(TMyClass);
end;

关于delphi - 元类默认参数值(Delphi 2009),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31080978/

10-10 10:10