加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi – 使用可选的VAR参数调用过程?

发布时间:2020-12-15 09:43:33 所属栏目:大数据 来源:网络整理
导读:Delphi 2010 – 我有一个例程,它接受一个字符串并处理它.有3种不同类型的处理,我可能需要任何组合,包括所有3种处理方式.我试图确定如何调用我的例程,但我尝试的一切都会导致问题.我想做的是调用这样的程序…… StringProcess(StartString1,VarProcess1,VarPr
Delphi 2010 – 我有一个例程,它接受一个字符串并处理它.有3种不同类型的处理,我可能需要任何组合,包括所有3种处理方式.我试图确定如何调用我的例程,但我尝试的一切都会导致问题.我想做的是调用这样的程序……

StringProcess(StartString1,VarProcess1,VarProcess2,VarProcess3);

但它可能很容易就是这个我只想要2个进程

StringProcess(StartString1,'',VarProcess3);

程序定义类似于

procedure StringProcess(StartString: string; var S1:String; var S2:string; var S3:string);

总而言之…如何定义我的过程以返回1到3个VAR变量? Delphi希望我总是传递3个变量,如果我不需要它,我只需要忽略它.有没有办法传递“不存在”的VAR参数,并根据需要忽略它们?

谢谢

解决方法

问题是,只要StringProcess rountine尝试修改这些值,就必须有变量来表示S1,S2和S3.毫无疑问,您不想经历为您不感兴趣的值声明变量的头痛问题.

要考虑的一个选项是将所有变量捆绑到记录结构中,如下所示:

type
  TStringData = record
    S1,S2,S3: string;
  end;

procedure StringProcess(StartString: string; var StringData: TStringData);

但是我会更进一步.我怀疑你并没有在StringProcess例程中使用S1,S2和S3的输入.这意味着它们也可能是参数.在这种情况下,我宁愿建议你写:

function StringProcess(StartString: string): TStringData;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读