【发布时间】:2011-05-02 00:39:21
【问题描述】:
我在 Delphi XE 中得到了这样的代码
function DoSomething(MyVar : Variant) : boolean;
begin
MyVar := 'Bar';
Result := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
foo : string;
begin
foo := '';
showmessage(foo); // shows blank ofc
DoSomething(foo);
showmessage(foo); // still blank
end;
我想要做的是,让它可以设置 foo 的参数。我尝试使用 var 关键字,如
DoSomething(var MyVar : Variant)....
但这不会编译。
这样做的原因是 DoSomething 可以为 MyVar 分配一个字符串或整数,这就是为什么它是一个变体......
【问题讨论】:
-
当使用
var参数(通过引用传递)时,你的foo : string;应该变成foo : Variant;,正如编译器告诉你的那样。
标签: delphi pass-by-reference parameter-passing delphi-xe