在Delphi中命名/可选参数?
在其中一个Delphi演示应用程序中,我偶然发现了一些不知道Delphi编译器接受的语法:
// ......DemosDelphiWin32VCLWin32ActiveXOleAutoSrvCompWord // Main.pas,line 109 Docs.Add(NewTemplate := True); // note the assignment 我似乎无法重现这种类型的参数传入我自己的代码,我从来没有看到有人使用它.所以这些是我的问题: >我可以在“普通”方法中使用它,并且它是“Delphi语言”的一部分,还是这些编译器为自动化对象而使用?
解决方法
显然,Delphi语言支持命名参数,因为它们出现在示例Delphi代码中. Delphi支持自动化对象上的命名参数,它们是实现IDispatch接口的对象.
There are restrictions on the types the parameters and return types can have;特别是,他们不能是Delphi类.
我不认为从命名参数中寻找的便利性将超过您通过使用 Delphi通过允许默认值来支持非自动化代码中的可选参数.只要您也省略所有后续参数的实际参数,您可以省略具有默认值的任何参数的实际参数 – 编译器确保函数的声明允许. 我认为可选参数被高估了.他们为(1)人编写代码节省时间,但不能为(许多)阅读代码的人节省时间.任何阅读它的人都需要知道任何未指定参数的默认值,所以您也可以直接提供所有的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |