在Delphi中跳过默认参数
发布时间:2020-12-15 09:10:57 所属栏目:大数据 来源:网络整理
导读:有没有办法跳过默认的参数,假设我的方法声明是这样的: 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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |