Delphi 中将对象作为参数传递的使用

来源:互联网 发布:电脑版淘宝怎么看微淘 编辑:程序博客网 时间:2024/04/28 16:01
Delphi 中将对象作为参数传递的使用 举例分析
2009-07-24 13:40

 

下面的单击事件,将要调用一个以对象为参数的方法,并将结果显示出来。

procedure TForm1.btn1Click(Sender: TObject);
var
lStrings: TStrings;
begin
lStrings:= TStringList.Create;
try
    lStrings.Add('chen');
    GetOperatorAllDeptIDs(lStrings);
    ShowMessage(lStrings.Text);
finally
    lStrings.Free;
end;

 

调用方法一:

function GetOperatorAllDeptIDs( AStrings: TStrings):String;
begin
//
注释 AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;

返回结果为:chen zhi

分析:此时传递的AStrings lStrings对象的对象引用副本,即也指向对象lStrings,所以当执行AStrings. Add('zhi');时操作为lStrings对象添加‘zhi’。

 

调用方法二:

function GetOperatorAllDeptIDs( var AStrings: TStrings):String;
begin
//
注释 AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;

返回结果为:chen zhi

分析:此时传递的AStrings lStrings对象的对象引用,当执行AStrings. Add('zhi');时操作的对象为lStrings对象。

 

调用方法三:

function GetOperatorAllDeptIDs( AStrings: TStrings):String;
begin
AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;

返回结果为:chen

分析:此时传递的AStrings lStrings对象引用的副本,当方法中执行AStrings:= TStringList.Create;又将对象引用副本 的引用指向了此时新建的一个对象,所以此时对AStrings的任何操作已经不会影响lStrings对象。

 

调用方法四:

function GetOperatorAllDeptIDs( var AStrings: TStrings):String;
begin
AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;

返回结果为:zhi

分析:此时传递的AStrings lStrings对象的对象引用,当方法中执行AStrings:= TStringList.Create;时, lStrings这个对象引用指向了新建的AStrings对象。所以,lString的值为’Zhi

原创粉丝点击