delphi 调用有外部参数的function或procedure时,string类型的参数值为什么传不进去呢
procedureTForm1.Button1Click(Sender:TObject);varnum:Integer;snum:string;beginnum:=2;s...
procedure TForm1.Button1Click(Sender: TObject);
var
num : Integer;
snum : string;
begin
num := 2;
snum := 'ABC';
MyFunction(num, snum);
ShowMessage('procedure:' + IntToStr(num) + snum);
end;
procedure TForm1.MyFunction(out num: Integer; out snum: string);
begin
num := num * 2;
snum := snum + 'CBA';
end;
为什么弹出的snum的值是‘CBA’ 却不是‘ABCCBA’呢?怎么才能把string的值传进去啊?
我知道var可以,var是在传递参数的地址。但我是想知道out为什么不行呢。Out不就是以返回值的形式进行参数返回吗?而且明明Integer类型的可以,可到了string为什么就不行了呢? 展开
var
num : Integer;
snum : string;
begin
num := 2;
snum := 'ABC';
MyFunction(num, snum);
ShowMessage('procedure:' + IntToStr(num) + snum);
end;
procedure TForm1.MyFunction(out num: Integer; out snum: string);
begin
num := num * 2;
snum := snum + 'CBA';
end;
为什么弹出的snum的值是‘CBA’ 却不是‘ABCCBA’呢?怎么才能把string的值传进去啊?
我知道var可以,var是在传递参数的地址。但我是想知道out为什么不行呢。Out不就是以返回值的形式进行参数返回吗?而且明明Integer类型的可以,可到了string为什么就不行了呢? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询