gpt4 book ai didi

delphi - 传递对 TObjectDictionary.TValueEnumerator 的引用

转载 作者:行者123 更新时间:2023-12-03 15:57:30 24 4
gpt4 key购买 nike

我正在尝试使用 Delphi 2010 的 TObjectDictionary 泛型。

我想传递该泛型类的 Values 属性的枚举器,但编译器似乎不想让我...示例:

  TAttributeStates = class(TInterfacedObject, IAttributeStates)
private
FStates: TObjectDictionary<TPatchAttribute, TAttributeState>;

public

constructor Create;
destructor Destroy; override;

function GetEnumerator: TObjectDictionary<TPatchAttribute, TAttributeState>.TValueEnumerator;

end;

implementation

function TAttributeStates.GetEnumerator: TObjectDictionary<TPatchAttribute, TAttributeState>.TValueEnumerator;
begin
result := FStates.Values.GetEnumerator;
end;

编译失败并出现错误:

[DCC Error] ChannelStates.pas(249): E2010 Incompatible types: 'TDictionary<Generics.Collections.TObjectDictionary<TKey,TValue>.TKey,Generics.Collections.TObjectDictionary<TKey,TValue>.TValue>.TValueEnumerator' and 'TDictionary<ChannelPatch.TPatchAttribute,ChannelStates.TAttributeState>.TValueEnumerator'

编译器似乎没有正确解析子类型...

大家有什么想法吗?

N@

最佳答案

找到了。

function GetEnumerator: TEnumerator<TAttributeState>;


function TAttributeStates.GetEnumerator: TEnumerator<TAttributeState>;
begin
result := FStates.Values.GetEnumerator;
end;

工作正常。

关于delphi - 传递对 TObjectDictionary<TKey, TValue>.TValueEnumerator 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115937/

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