传入参数数据类型的问题

Mit1208 2018-05-31 10:55:19


///思考一个程序,程序中有几个方案,想将这些方案通过线程初始化参数的形式传递进去,

//但是这些方案的字段存在共有的,也存在不一样的:如何写呢?

//比如:

//共有参数:
Fname:string;
FType:TSchemeType;

//方案1:
procedure Run;

//方案2:
procedure Car;

//方案3:
procedure airLine;

//线程初始化时将方案传递进去。

WorkThread.Create(Scheme); //这里的Scheme如何定义数据类型,才能兼容以上的几种方案呢?


//如果可以,请给个例子,谢谢,非常感谢。


...全文
1684 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可以考虑使用泛型
SupermanTm 2018-06-04
  • 打赏
  • 举报
回复

type
  TMyParamStru = record
    RunProc: TProcedure;
    OtherParam: array [0..1] of Integer;
  end;

  TWorkThread = class(TThread)
  private
    FInitPm: TMyParamStru;
  protected
    procedrue Execute; override;
  public
    constructor Create(InitPm: TMyParamStru);
  end;

constructor TWorkThread.Create(InitPm: TMyParamStru);
begin
  FInitPm:= InitPm;
  inherited Create(True, True);
end;

procedure TWorkThread.Execute;  
begin
  if Assigned(FInitPm.RunProc) then begin
    FInitPm.RunProc;
  end;
end;  
Mit1208 2018-06-01
  • 打赏
  • 举报
回复
配置的方案比较多,用TStringList不好弄。 希望用自定义类的方式传入参数,在线程中再判断来处理。
lyhoo163 2018-05-31
  • 打赏
  • 举报
回复
建议使用TStringList带入参数。
Mit1208 2018-05-31
  • 打赏
  • 举报
回复
我这上边只是个例子而已。 具体实现的时候,不只是这三个过程。说不定有很多字段的。 想把不同的方案内容分成不同的类来操作。然后通过一个数据类型来传入参数。 相当于 procedure sample(strList:TStrings); 使用的时候可以传入TStringList或TStringStream类型。
hj8090 2018-05-31
  • 打赏
  • 举报
回复
结构体或自定义类
  • 打赏
  • 举报
回复
你不都定义TSchemeType了吗,一般来说枚举类型即可

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧