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

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’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值