Delphi 如何将TDictionary作为可选参数传递?
如何将TDictionary作为可选参数传递 例如,如果我在类中使用它,则不起作用:Delphi 如何将TDictionary作为可选参数传递?,delphi,delphi-xe2,Delphi,Delphi Xe2,如何将TDictionary作为可选参数传递 例如,如果我在类中使用它,则不起作用: TMyDict = TDictionary<String, String>; TTest = class procedure Render(Id: Integer; Name: String = ''; Variables: TMyDict = nil); //error end; 有什么建议吗?您的实现声明缺少类。应该是: procedure TTest.Render(Id: Integ
TMyDict = TDictionary<String, String>;
TTest = class
procedure Render(Id: Integer; Name: String = ''; Variables: TMyDict = nil); //error
end;
有什么建议吗?您的实现声明缺少类。应该是:
procedure TTest.Render(Id: Integer; Name: String = ''; Variables: TMyDict = nil);
// ^^^^^^
begin
// Do something...
end;
您也可以考虑省略实现中的默认值。< /P> 下面是一个完整的编译程序,以说明这一点:
program SO16740725;
{$APPTYPE CONSOLE}
uses
Generics.Collections;
type
TMyDict = TDictionary<string, string>;
type
TTest = class
procedure Render(Id: Integer; Name: string=''; Variables: TMyDict=nil);
end;
procedure TTest.Render(Id: Integer; Name: string; Variables: TMyDict);
begin
// Do something...
end;
begin
end.
您的实现声明缺少类。应该是:
procedure TTest.Render(Id: Integer; Name: String = ''; Variables: TMyDict = nil);
// ^^^^^^
begin
// Do something...
end;
您也可以考虑省略实现中的默认值。< /P> 下面是一个完整的编译程序,以说明这一点:
program SO16740725;
{$APPTYPE CONSOLE}
uses
Generics.Collections;
type
TMyDict = TDictionary<string, string>;
type
TTest = class
procedure Render(Id: Integer; Name: string=''; Variables: TMyDict=nil);
end;
procedure TTest.Render(Id: Integer; Name: string; Variables: TMyDict);
begin
// Do something...
end;
begin
end.
您有一行代码标记为错误;请告诉我你犯了什么错误。复制并粘贴错误消息。你说你有很好的代码,但是你说你不能使用它。如果它工作正常,是什么阻止你使用它?将来,当你说“不工作”时,解释什么是“不工作”的意思。我们从这里看不到你的屏幕,也看不到你的想法,所以如果你告诉我们你已经知道它是如何工作的,那就容易多了。此外,当你说错误时,请解释这意味着什么,如果你收到错误信息,请包括确切的错误信息。如果您确实向我们提供了我们可以提供的信息,那么帮助您就容易多了。谢谢。您有一行代码标记为错误;请告诉我你犯了什么错误。复制并粘贴错误消息。你说你有很好的代码,但是你说你不能使用它。如果它工作正常,是什么阻止你使用它?将来,当你说“不工作”时,解释什么是“不工作”的意思。我们从这里看不到你的屏幕,也看不到你的想法,所以如果你告诉我们你已经知道它是如何工作的,那就容易多了。此外,当你说错误时,请解释这意味着什么,如果你收到错误信息,请包括确切的错误信息。如果您确实向我们提供了我们可以提供的信息,那么帮助您就容易多了。谢谢。我的首选是保持实现100%相等,因此包含默认值以避免混淆…我的首选是保持实现100%相等,因此包含默认值以避免混淆。。。