gpt4 book ai didi

C# - 创建字典>

转载 作者:太空狗 更新时间:2023-10-29 23:17:15 26 4
gpt4 key购买 nike

我有一个名为 Manager<T> 的通用类,我想创建一个字典,将类型映射到该类型的 Manager 类的实例。我考虑过创建一个派生自 Dictionary 的 Dictionary 类, 但重写它的所有方法似乎有点矫枉过正。想法?谢谢。

最佳答案

我认为这是泛型不能很好支持的情况,也许这就是你想要的。您将需要在内部存储管理器,因为存储可能使用 Dictionary<Type,Object>Dictionary<Type,IManager>其中 IManager 是应用于 Manager<T> 的标记(空)接口(interface)然后,您需要在返回之前将其转换为提供的类型 T。我想不出一个通过索引器访问它的好方法,所以这可能是你能得到的最好的方法

public class ManagerDictionary{
private Dictionary<Type, object> _managers = new Dictionary<Type, object>();

public Manager<T> GetManager<T>()
{
if (_managers.ContainsKey(typeof(T)))
{
return _managers[typeof(T)] as Manager<T>;
}
throw new ArgumentException("No manager of " + typeof(T).Name + " could be found");
}

public void AddManager<T>(Manager<T> manager)
{
_managers.Add(typeof(T),manager);
}
}

关于C# - 创建字典<T, 管理器<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624294/

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