相关疑难解决方法(0)

如何比较TFunc/TProc包含对象的功能/过程?

我们在其中使用了TList<TFunc<Boolean>>一些function ... of objects,现在又想要Remove()一些条目.但它不起作用,因为很明显你根本无法reference to ...可靠地比较这些东西.

这是一些测试代码:

program Project1;

{$APPTYPE CONSOLE}

uses
  Generics.Defaults,
  SysUtils;

type
  TFoo = class
  strict private
    FValue: Boolean;
  public
    constructor Create();
    function Bar(): Boolean;
  end;

{ TFoo }

function TFoo.Bar: Boolean;
begin
  Result := FValue;
end;

constructor TFoo.Create;
begin
  inherited;

  FValue := Boolean(Random(1));
end;

function IsEqual(i1, i2: TFunc<Boolean>): Boolean;
begin
  Result := TEqualityComparer<TFunc<Boolean>>.Default().Equals(i1, i2);
end;

var
  s: string;
  foo: TFoo;
  Fkt1, Fkt2: TFunc<Boolean>;

begin
  try
    Foo := …
Run Code Online (Sandbox Code Playgroud)

delphi comparison delphi-2009

11
推荐指数
1
解决办法
2798
查看次数

如何在引擎盖下实施匿名方法?

Delphi是否"实例化"每个匿名方法(如对象)?如果是这样,Delphi何时创建此实例,最重要的是,Delphi何时释放它?

因为匿名方法还捕获外部变量并延长其生命周期,所以知道这些变量何时将从内存中"释放"非常重要.

在另一个匿名方法中声明匿名方法有什么可能的缺点.是否可以循环引用?

delphi anonymous-methods

10
推荐指数
2
解决办法
956
查看次数