在Delphi中,可以通过以下步骤将TComparer<T>类传递给泛型类型:
以下是一个示例代码:
unit MyGenericUnit;
interface
uses
Generics.Defaults;
type
TMyGeneric<T> = class
private
FComparer: IComparer<T>;
public
constructor Create(const AComparer: IComparer<T>);
procedure DoSomething(const Value: T);
end;
implementation
constructor TMyGeneric<T>.Create(const AComparer: IComparer<T>);
begin
FComparer := AComparer;
end;
procedure TMyGeneric<T>.DoSomething(const Value: T);
begin
// 使用FComparer进行比较操作
// ...
end;
end.
在使用TMyGeneric<T>类时,你可以传递TComparer<T>类的实例作为参数:
var
MyObject: TMyGeneric<Integer>;
Comparer: IComparer<Integer>;
begin
Comparer := TComparer<Integer>.Default;
MyObject := TMyGeneric<Integer>.Create(Comparer);
MyObject.DoSomething(42);
end;
在上述示例中,我们创建了一个TMyGeneric<Integer>对象,并将TComparer<Integer>.Default作为参数传递给它的构造函数。然后,我们调用了TMyGeneric<T>.DoSomething方法,其中使用了传递的比较器进行比较操作。
请注意,这只是一个简单的示例,你可以根据实际需求进行修改和扩展。对于其他泛型类型,你可以采用类似的方法将TComparer<T>类传递给它们。
关于Delphi中的泛型类型和TComparer<T>类的更多信息,你可以参考腾讯云的Delphi开发文档:Delphi开发文档链接。
领取专属 10元无门槛券
手把手带您无忧上云