delphi – 将无限数量的参数传递给程序
发布时间:2020-12-15 10:04:08 所属栏目:大数据 来源:网络整理
导读:在Delphi中的程序写可以处理: write(TF,st1) 和 write(TF,st1,st2,st3,st4); 我想声明一个也可以这样做的过程,什么是语法? 并选择: write(TF,[st1,st3]) 不太可取,虽然我知道如何做到这一点. 主要目的是将ShortStrings传递给函数,这将从文件中进行读取调
在Delphi中的程序写可以处理:
write(TF,st1) 和 write(TF,st1,st2,st3,st4); 我想声明一个也可以这样做的过程,什么是语法? 并选择: write(TF,[st1,st3]) 不太可取,虽然我知道如何做到这一点. 主要目的是将ShortStrings传递给函数,这将从文件中进行读取调用,并按照定义的长度读取shortString.然而,通过它作为变体或开放数组,shortString失去了它的“大小”,成为255,这使得这个传递不可用,对我来说. 解决方法
首先,Inc和Write都是错误的例子,因为它们都从编译器得到特殊的处理.你不能写一个类似于你自己的功能.有什么应该调查的方法.
看看超载 您可以使用不同数量的参数和不同类型创建多个版本的方法.这样的事情 procedure MyInc(var i:Integer); overload; procedyre MyInc(var i:Integer; const N:Integer); overload; procedure MyInc(var i:Integer; const N1,N2: Integer); overload; procedure MyInc(var i:Integer; const N1,N2,N3: Integer):overload; 如果所需的重载数量不是很大,这是可行的.编译器可能很容易处理大量的重载,但是你可能不想写它们.当重载次数变成问题时,可以切换到数组: 使用Open Arrays作为参数 函数可以使用YourType类型数组的参数,当您调用该函数时,您可以传递尽可能多的参数: procedure MyInc(var i:Integer; Vals: array of Integer); 然后使用它: MyInc(i,[]); // no parameters MyInc(i,[1]); MyInc(i,[1,34,43,12]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |