gpt4 book ai didi

c# - 使用 C# Generics 进行界面设计

转载 作者:行者123 更新时间:2023-11-30 19:04:16 24 4
gpt4 key购买 nike

我目前正在设计一个类库,它将向 C# 中的 Web 应用程序图形呈现引擎提供数据。我目前正在定义这个库的接口(interface)。

我有一个 IGraphData 接口(interface),我想使用访问缓存的服务对其进行缓存,这称为 IGraphDataCacheService 并且具有设置和获取方法来向缓存添加和检索 IGraphData 对象。缓存服务将是一个单例。

我对实现它的正确方法感到困惑,因此只有一个缓存服务可以获取和设置通用 IgraphData 对象。

我想到了这个:

interface IGraphDataCacheService {

IGraphData<object> Get(string identifier);
void Set(IGraphData<object> graphData);}

或者这个:

T Get<T, P>(string identifier) where T : IGraphData<P>;
void Set<T,P>(T graphData) where T : IGraphData<P>;

任何人都可以提供任何建议帮助吗?

谢谢

最佳答案

为什么不直接让界面通用化呢?

interface ICacheService<T> {
T Get(string identifier);
void Set(T graphData);
}

如果您愿意,您可以将 T 类型限制为 IGraphData 类型,或者您可以将其写为:

interface IGraphDataCacheService<T> {
IGraphData<T> Get(string identifier);
void Set(IGraphData<T> graphData);
}

关于c# - 使用 C# Generics 进行界面设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/855840/

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