gpt4 book ai didi

delphi - Delphi中使用 "with"创建的引用对象实例

转载 作者:行者123 更新时间:2023-12-03 14:44:46 24 4
gpt4 key购买 nike

有没有办法引用使用“with”语句创建的对象实例?

示例:

with TAnObject.Create do
begin
DoSomething(instance);
end;

其中 DoSomething 将使用实例引用,就像将实例从声明的变量引用传递给创建的对象一样。

示例:

AnObject := TAnObject.Create;

谢谢。

最佳答案

那么,你可以使用这样的方法:

// implement:

type
TSimpleMethod = procedure of object;

function GetThis(const pr: TSimpleMethod): TObject;
begin
Result := TMethod(pr).Data;
end;

// usage:

with TStringList.Create do
try
CommaText := '1,2,3,4,5,6,7,8,9,0';
ShowText(TStringList(GetThis(Free)));
finally
Free;
end;

或类助手:

type 
TObjectHelper = class helper For TObject
private
function GetThis: TObject; Inline;
public
property This: TObject read GetThis;
end;

...

function TObjectHelper.GetThis: TObject;
begin
Result := Self;
end;

但是,实际上,之前的回复是正确的:你最好忘记“with”语句。

关于delphi - Delphi中使用 "with"创建的引用对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com