gpt4 book ai didi

delphi - 当类助手在范围内时如何调用原始类的代码?

转载 作者:行者123 更新时间:2023-12-03 18:40:50 25 4
gpt4 key购买 nike

我正在对改进的快速排序版本进行一些单元测试。
(希望)更快的版本是通过以下方式实现的:

TArrayHelper = class helper for System.Generics.Collections.TArray
....
class procedure Sort<T>(var Values: array of T); overload; static;
class procedure Sort<T>(var Values: array of T; Comparer: IComparer<T>); overload; static;
....

我知道现在我可以重命名 Sort进入 SortNew出于测试的目的,但在某些时候我必须将方法名称修复为 sort .

如果范围内有类助手,我如何调用原始方法?

有没有使用 rtti 或其他迂回方法的方法?

最佳答案

我认为使用纯 Pascal 代码实现此目的的唯一方法是调用 Sort从您的类助手不活动的范围内。关键是如果您的类(class)助手处于事件状态,那么 Sort指助手中的方法。

例如像这样:

unit ScopeBuster;

interface;

uses
System.Generics.Collections;

type
TArrayScopeBuster = class
class procedure Sort<T>(...); overload; inline; static;
end;

implementation

class procedure TArrayScopeBuster.Sort<T>(...);
begin
TArray.Sort(...);
end;

end.

关于delphi - 当类助手在范围内时如何调用原始类的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844306/

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