delphi – 将无限数量的参数传递给程序

前端之家收集整理的这篇文章主要介绍了delphi – 将无限数量的参数传递给程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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]);

猜你在找的Delphi相关文章