码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi out 参数 string Integer

时间:2014-12-01 12:48:37      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   os   sp   for   on   

http://www.delphibasics.co.uk/RTL.asp?Name=Out

 

http://stackoverflow.com/questions/14507310/whats-the-difference-between-var-and-out-parameters

A var parameter will be passed by reference, and that‘s it.

An out parameter is also passed by reference, but it‘s assumed that the input value is irrelevant.

out参数也是以引用传递,但是假定输入值是不相关的。

For managed types, (strings, Interfaces, etc,) the compiler will enforce this, by clearing the variable before the routine begins, equivalent to writing param := nil.

对(生存期自动)管理的类型(字符串,接口,等),编译器会强制在routine开始前清空out变量,登录写参数为空。

For unmanaged types, the compiler implements out identically to var.

对非管理类型,编译器实现out等同于var参数。

Note that the clearing of a managed parameter is performed at the call-site and so the code generated for the function does not vary with out or var parameters.

说明,对受管理类型参数的清理是在 调用位置 进行的,所以 为被调用函数产生的代码 不包括out或者var参数。

 

share|edit

edited Jan 24 ‘13 at 19:05

David Heffernan
316k22396683
answered Jan 24 ‘13 at 17:38

Mason Wheeler

procedure testout(const str: string; out a: string; out I: Integer);
begin
ShowMessage(a + IntToStr(I));//100  a是空的
a := str;
I := 200;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s, ss, ds, qx, dz: string;
I: Integer;
jo: ISuperObject;
begin
s := ‘外面‘;
ss:= ‘out‘;
I:= 100;
testout(s, ss, I);
ShowMessage(ss + IntToStr(I));//外面200

Exit;

end;

  

 

Delphi out 参数 string Integer

标签:style   blog   http   io   ar   os   sp   for   on   

原文地址:http://www.cnblogs.com/CodeGear/p/4134679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!