如何在 Delphi 中传回函数/方法变量?

问题描述 投票:0回答:0

如果我想为方法变量创建一个 getter 访问器,getter 不会返回变量但它会执行存储的代码并尝试传回结果。

unit Unit5;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TMyFactory1 = function : TObject of object;
  TMyFactory2 = reference to function : TObject;

  TForm5 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    fMyFactory1 : TMyFactory1;
    fMyFactory2 : TMyFactory2;
  public
    { Public declarations }
    function getMyFactory1 : TMyFactory1;
    function getMyFactory2 : TMyFactory2;
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

function TForm5.getMyFactory1 : TMyFactory1;
begin
  result := fMyFactory1;
end;

function TForm5.getMyFactory2 : TMyFactory2;
begin
  result := fMyFactory2;
end;

procedure TForm5.Button1Click(Sender: TObject);
var
  aMF1 : TMyFactory1;
  aMF2 : TMyFactory2;
begin
  aMF1 := getMyFactory1; // Incompatible types: 'TObject' and 'TMyFactory1'
  aMF2 := getMyFactory2; // Incompatible types: 'TMyFactory2' and 'Procedure of object'
end;

end.

我可以为这种类型创建一个 setter,但我无法创建一个 getter。我怎样才能创建它?

delphi getter
© www.soinside.com 2019 - 2024. All rights reserved.