c# - 在 C# 中,我如何创建泛型字典?

标签 c# generics

<分区>

假设我有通用类 Foo<T> .

我想做的是为各种 T 中的每一个创建一个单例,然后稍后通过 T 快速检索它们。

伪代码

STORE new Foo<int>
STORE new Foo<MyClass>

GET instance for MyClass  ->  returns the Foo<MyClass> created above.

在 Java 中,我会创建一个字典,它的键是 Type,键是 Foo<*>。的值(value)。

C# 中的等效魔法是什么?

最佳答案

Dictionary<Type, object> Dict = new Dictionary<Type, object>();

void Store<T>(Foo<T> foo)
{
    Dict.Add(typeof(T), foo);
}

Foo<T> Retrieve<T>()
{
    return Dict[typeof(T)] as Foo<T>;
}

关于c# - 在 C# 中,我如何创建泛型字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317755/

相关文章:

c# - C#WPF为什么我的程序在其他计算机上崩溃?

c# - 在 .NET Core 集成测试中查找我的 ConnectionString

c# - 如何将字符串分成数组

c# - .NET Core 2 中使用 CaSTLe DynamicProxy 的 Autofac 方法级拦截

java - Java 中的未检查调用是什么?

c# - IQueryable<T> 上的通用扩展方法

java - 为什么我需要在这里添加类型,有没有更好的方法?

c# - 生成一个完整的对象图形界面

C# 通用问题

java - 如何避免在子类中强制转换父级字段