gpt4 book ai didi

delphi - 跳过Delphi中的默认参数

转载 作者:行者123 更新时间:2023-12-03 15:37:11 25 4
gpt4 key购买 nike

有没有办法跳过默认参数,假设我的方法声明是这样的:

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

我无法像这样调用该函数:

Self.MyProc1( , , Attr3);

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

提前感谢您的帮助。

最佳答案

抱歉,您不能这样做。此外,您不能像使用 isAttr1 那样使用带有默认值的 var 参数。

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

其他发帖者提出了类似的建议:

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

这可以编译并工作,但会违反最小意外原则。对于像这样的重载过程,您会期望,对于仅具有单个参数的过程,该单个参数是具有多个参数的过程的第一个参数。换句话说,您会期望:

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

关于delphi - 跳过Delphi中的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com