我有两个 Equal 方法可以接受这些重载:
TVariantExpression = reference to function(): Variant;
function Equal(const value: Variant): TRuleBuilder; overload;
function Equal(expr: TVariantExpression): TRuleBuilder; overload;
假设我有另一个功能:
function TForm1.GetMagicNumber: Variant;
begin
Result := 10;
end;
我调用这样的函数:
Equal(Form1.GetMagicNumber);
检查后,我得到调用第二个重载的结果。为什么?因为它们都可以被调用。