Jon*_*ría 5 delphi metaclass default-arguments
我想在metaclass参数中给出一个默认值:
type
TMyClass = class
end;
type
TMyClassMetaClass = class of TMyClass;
procedure MyProcedure(const AMetaClass: TMyClassMetaClass = TMyClass);
Run Code Online (Sandbox Code Playgroud)
有可能的?在Delphi2009中它给出了错误:E2026预期的常量表达式
根据语言规则,元类不是一个常量表达式.所以你最好的选择是使用重载:
procedure MyProcedure(const AMetaClass: TMyClassMetaClass); overload;
procedure MyProcedure; overload;
Run Code Online (Sandbox Code Playgroud)
并在实施中:
procedure MyProcedure(const AMetaClass: TMyClassMetaClass);
begin
....
end;
procedure MyProcedure;
begin
MyProcedure(TMyClass);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |