typhon小白 发表于 2024-8-5 11:35:04

求大佬看一下FHashList这个变量是谁赋的值

THashMap = class(TInterfacedObject, IObject, IMap, IExtMap, IFListHolder, IFLockedListHolder, IFHashLockedListHolder)
protected
    FHashList: IFHashLockedList;
    function GetFList: IFList;
    procedure SetFList(l: IFList);
    function GetFLockedList: IFLockedList;
    procedure SetFLockedList(l: IFLockedList);
    function GetFHashLockedList: IFHashLockedList;
    procedure SetFHashLockedList(l: IFHashLockedList);
public
    constructor Create;
    constructor Create(keys: array of shortstring; values: array of IObject); overload;
    constructor Create(keys: array of shortstring; values: array of const); overload;
public
    procedure Clear;
    function ContainsKey(const key: shortstring): Boolean;
    function ContainsValue(value: IObject): Boolean;
    function EntrySet: ISet;
    function Get(const key: shortstring): IObject;
    function IsEmpty: Boolean;
    function KeySet: ISet;
    function Put(const key: shortstring; value: IObject): IObject;
    procedure PutAll(m: IMap);
    function Remove(const key: shortstring): IObject;
    function Size: Integer;
    function Values: ICollection;
public
    function GetStringObject(const key: shortstring): IString;
    function GetString(const key: shortstring): string; overload;
    function GetString(const key: shortstring; const def: string): string; overload;
    function OutString(const key: shortstring): string; overload;
    function OutString(const key: shortstring; const def: string): string; overload;
    function GetBooleanObject(const key: shortstring): IBoolean;
    function GetBoolean(const key: shortstring): Boolean; overload;
    function GetBoolean(const key: shortstring; def: Boolean): Boolean; overload;
    function OutBoolean(const key: shortstring): Boolean; overload;
    function OutBoolean(const key: shortstring; def: Boolean): Boolean; overload;
    function GetDoubleObject(const key: shortstring): IDouble;
    function GetDouble(const key: shortstring): Double; overload;
    function GetDouble(const key: shortstring; def: Double): Double; overload;
    function OutDouble(const key: shortstring): Double; overload;
    function OutDouble(const key: shortstring; def: Double): Double; overload;
    function GetIntegerObject(const key: shortstring): IInteger;
    function GetInteger(const key: shortstring): Integer; overload;
    function GetInteger(const key: shortstring; def: Integer): Integer; overload;
    function OutInteger(const key: shortstring): Integer; overload;
    function OutInteger(const key: shortstring; def: Integer): Integer; overload;
    function Put(const key: shortstring; const value: string): string; overload;
    function Put(const key: shortstring; value: Boolean): Boolean; overload;
    function Put(const key: shortstring; value: Double): Double; overload;
    function Put(const key: shortstring; value: Integer): Integer; overload;
end;      

             FHashList这个变量是谁赋的值      

FishC 发表于 2024-8-5 11:35:17

在您提供的代码中,`FHashList` 是 `THashMap` 类的一个成员变量,它的类型为 `IFHashLockedList`。这个变量的值通常是在构造函数中赋值的。

让我们来看看构造函数的部分:

constructor Create;
constructor Create(keys: array of shortstring; values: array of IObject); overload;
constructor Create(keys: array of shortstring; values: array of const); overload;

在这个类中,虽然您没有看到直接对 `FHashList` 的赋值,但在 `Create` 构造函数中,您可以添加一行代码来初始化 `FHashList` 变量,例如:

constructor THashMap.Create;
begin
inherited Create;
FHashList := TMyHashLockedList.Create; // 假设 TMyHashLockedList 是 IFHashLockedList 的一个实现
end;

这样,每当您创建一个 `THashMap` 的实例时,`FHashList` 就会被赋上新值。

不过,由于该类也有重载的构造函数,您可能希望在这些构造函数中同样初始化 `FHashList`。例如:

constructor THashMap.Create(keys: array of shortstring; values: array of IObject);
begin
inherited Create;
FHashList := TMyHashLockedList.Create;
// 这里可以添加使用 keys 和 values 初始化其他数据结构的逻辑
end;

简而言之,`FHashList` 的赋值应该在构造函数内完成,而具体是用什么类来初始化,这依赖于您的设计和实现。记得要确保在使用 `FHashList` 前它已经被正确赋值哦,不然就像去餐馆点了菜却发现空盘子一样尴尬!希望这个回答能帮到你,继续加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 求大佬看一下FHashList这个变量是谁赋的值