const,var,out参数的顺序是否重要?

时间:2016-03-12 15:02:08

标签: delphi delphi-xe7

我正在重构一个大程序,现在我得到了许多小程序,有很多参数来回传递的函数。由于我希望保持相同/相似的性能和可重构的重构,我试图了解什么是最好的方法,所以我不打破代码。

这些新功能最常见:

function ProcessA(const ProjName,ProjPath:string; 
   ProjID:integer; 
   var ProjDest:string):string;

function ProcessB(const ProjName,ProjPath:string; 
   const ProjID,ProjHID,ProjGID:integer; 
   var ProjDest:string; 
   out ProjDelPath:string):string;

我读了很多关于const,var,out参数的文章。我应该首先订购所有const,然后全部正常,然后var和last out ...

它们的顺序是否重要?

修改

为了澄清为什么这个问题或者有人使用相同的问题,我使用IDE的 Refactor / Extract Method 功能做得很好,但它没有任何意义到位。所以,当我重新排序和更改参数名称时,我看到了没有标准的参数类型顺序的问题。

1 个答案:

答案 0 :(得分:8)

参数类型的顺序并不重要,只有一个例外;默认参数(例如fn(AFloat: single; AInt:integer = 0): integer;),这意味着如果您对默认值感到满意,则不必为AInt传递任何内容。这些参数必须位于参数列表的末尾,并且只能从末尾省略。 您可以阅读有关参数here的更多信息。