在Delphi中跳过默认参数

在Delphi中跳过默认参数,第1张

概述有没有办法跳过默认参数,假设我的方法声明是这样的: procedure MyProc1(var isAttr1: Boolean = FALSE; var isAttr2: Boolean = FALSE; var isAttr3: Boolean = FALSE); 我无法像这样调用函数: Self.MyProc1( , , Attr3); 因为我不想要不必要的var声明,同时我想要最 有没有办法跳过默认的参数,假设我的方法声明是这样的:

procedure MyProc1(var isAttr1: Boolean = FALSE;    var isAttr2: Boolean = FALSE; var isAttr3: Boolean = FALSE);

我无法像这样调用函数:

Self.MyProc1(,Attr3);

因为我不想要不必要的var声明,同时我想要最后一个param返回值(它是一个var类型)

提前感谢您的帮助.

解决方法 对不起,你不能这样做.更有甚者,你不能使用默认的var参数和isAttr1一样.

如果您的参数具有足够不同的参数类型,那么您可以使用overloaded methods作为默认参数的替代,这是我个人更喜欢的技术.但是你的参数都是布尔值的,所以你不能在这里做.

其他海报建议如下:

procedure Myfunc1(var isAttr1,isAttr2,isAttr3: Boolean); overload;procedure Myfunc1(var isAttr3: Boolean); overload;

这将编译和工作,但将违背最少惊喜的原则.对于像这样的重载过程,对于只有一个参数的过程,您可以期望该单个参数是具有多个参数的过程的第一个参数.换句话说,你会期望:

procedure Myfunc1(var isAttr1,isAttr3: Boolean); overload;procedure Myfunc1(var isAttr1: Boolean); overload;
总结

以上是内存溢出为你收集整理的在Delphi中跳过默认参数全部内容,希望文章能够帮你解决在Delphi中跳过默认参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存