红鱼儿

一个函数返回错误的结果

同事写了这样的一个函数:

Function TForm11.Get(s:string):string;
var
  i:Integer;
begin
  for i:=0 to 9 do
  begin
     result:=result+i.tostring;
  end;
  result:=s+result;
end;

一般情况下,执行结果是正常的。

但是放到线程中,结果就是错误的。

进一步跟踪,原来result没有初始化造成的,改成这样,问题解决:

function TForm11.Get(s:string):string;
var
  i:Integer;
begin
  result:='';//这句解决问题。
  for i:=0 to 9 do
  begin
     result:=result+i.tostring;
  end;
  result:=s+result;
end;

 

posted on 2021-06-15 18:35  红鱼儿  阅读(210)  评论(0编辑  收藏  举报