`这个关键字在delphi中是等价的

`这个关键字在delphi中是等价的,delphi,pascal,function-calls,Delphi,Pascal,Function Calls,假设我们有这样一门课: unit Traitement; interface type TTraitement =class public function func1(param:String): String; function func2(param:String): String; end; implementation function TTraitement.func1(param:String): String; begin

假设我们有这样一门课:

unit Traitement;

interface

type
  TTraitement =class
  public        
    function func1(param:String): String;
    function func2(param:String): String;
  end;

implementation

function TTraitement.func1(param:String): String;
begin
  //some code
end;

function TTraitement.func2(param:String): String;
begin
  //some code
end;

end.

我想在
func2
的代码中调用
func1
。我曾经是一名Java程序员,在这种情况下,我会使用关键字
this
。Pascal是否对
this
关键字具有等效项?如果没有,我如何实现这种调用呢?

与Java的
在Delphi中的这个
等价的是。从:

自己 在方法的实现中,标识符自引用 在其中调用方法的对象。例如,下面是 在类单元中实现TCollection Add方法:

function TCollection.Add: TCollectionItem;
begin
  Result := FItemClass.Create(Self);
end;
Add方法调用 FItemClass字段,它始终是TCollectionItem子体。 TCollectionItem.Create接受TCollection类型的单个参数, 因此Add将调用Add的TCollection实例对象传递给它。 以下代码对此进行了说明:

 var MyCollection: TCollection;
 ...
 MyCollection.Add   // MyCollection is passed to the 
                    // TCollectionItem.Create method
自我之所以有用,有很多原因。例如,一名成员 类类型中声明的标识符可能会在块中重新声明 类的方法之一。在这种情况下,您可以访问 原始成员标识符作为Self.identifier

但是请注意,问题中的示例代码不需要使用
Self
。在该代码中,您可以从
func2
调用
func1
,忽略
Self


上述文档节选中给出的示例确实为
Self

的存在提供了适当的动机,与Delphi中Java的
这个
的等价物是。从:

自己 在方法的实现中,标识符自引用 在其中调用方法的对象。例如,下面是 在类单元中实现TCollection Add方法:

function TCollection.Add: TCollectionItem;
begin
  Result := FItemClass.Create(Self);
end;
Add方法调用 FItemClass字段,它始终是TCollectionItem子体。 TCollectionItem.Create接受TCollection类型的单个参数, 因此Add将调用Add的TCollection实例对象传递给它。 以下代码对此进行了说明:

 var MyCollection: TCollection;
 ...
 MyCollection.Add   // MyCollection is passed to the 
                    // TCollectionItem.Create method
自我之所以有用,有很多原因。例如,一名成员 类类型中声明的标识符可能会在块中重新声明 类的方法之一。在这种情况下,您可以访问 原始成员标识符作为Self.identifier

但是请注意,问题中的示例代码不需要使用
Self
。在该代码中,您可以从
func2
调用
func1
,忽略
Self


上述文档摘录中给出的示例确实为
Self

FWIW的存在提供了适当的动机:您可以像
func1(…)一样调用它
-无需使用
Self
对其进行限定。请注意,Object Pascal中的
Self
实际上不是一个关键字,而是一个隐式变量。FWIW:您可以像
func1(…)那样调用它
-无需使用
Self
对其进行限定。请注意,Object Pascal中的
Self
实际上不是一个关键字,而是一个隐式变量。