具有多个参数的泛型类中的从属类型约束

edA-qa mort-ora-y

如何创建具有两个参数的泛型,其中第二个参数取决于第一个参数。在这种情况下,我将创建一个哈希类,在这里我需要对象的类型和标识它的密钥。

一些简化的代码进行解释:

class MyCache<T,Key> : where T is CommonImpl {
   Dictionary<Key,T> cache;

   T Get( Key v ) {
      ...
      var newValue = new T(v);
      return newValue;
   }
}

class ImplA : CommonImpl {
   public ImplA( String key ) { }
}

class ImplB : CommonImpl {
   public ImplB( SomeType key ) { }
}

我在这里有两个使用此缓存MyCache<ImplA,String>MyCache<ImplB,SomeType>

什么时候我们

我认为您要达到的目标是这样的:

public abstract class Base<TKey>
{
    public Base(TKey key) { }
}

public class ImplA : Base<string>
{
    public ImplA(string key) : base(key) {}
}

public class MyCache<TBase, TKey> where TBase : Base<TKey>
{
    public TBase Get(TKey key)
    {
        return (TBase)Activator.CreateInstance(typeof(TBase), key);
    }
}

然后你可以打电话

var b = new MyCache<ImplA, string>().Get("hi");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使泛型类的函数仅接受具有相同泛型类型但受更多约束的参数

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

具有多个类型参数的泛型推断类型

来自分类Dev

Typescript中具有泛型的子类型约束

来自分类Dev

具有类参数的泛型类型推断

来自分类Dev

泛型类中的多个约束

来自分类Dev

具有对其他类型参数的约束的类型参数的泛型推断

来自分类Dev

如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

来自分类Dev

Kotlin 中具有两个类型参数的泛型类

来自分类Dev

为什么实现具有类型约束的泛型接口的泛型类需要重复这些约束?

来自分类Dev

c#中具有多个类型参数的泛型方法

来自分类Dev

具有不同类型泛型参数的方法的泛型类

来自分类Dev

如何使用已知类型作为参数创建具有泛型的泛型类?

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

为什么在具有可比约束的泛型函数中丢失泛型类型信息?

来自分类Dev

具有泛型的Scala类型类

来自分类Dev

具有接口类类型的泛型

来自分类Dev

具有多个特征的泛型类型

来自分类Dev

具有多个泛型类型的ArrayList?

来自分类Dev

具有两个类型约束和接口实现的泛型类

来自分类Dev

具有类型约束的泛型类上的F#模式匹配

来自分类Dev

如何将主构造函数添加到具有类型约束的泛型类?

来自分类Dev

在具有不同泛型参数的抽象类中返回泛型是不好的做法

来自分类Dev

java类中的多个泛型类型

来自分类Dev

Kotlin抽象类,具有泛型参数和使用类型参数的方法

来自分类Dev

检查对象是否是具有多个类型参数的泛型类型

来自分类Dev

如何约束泛型类型以使其具有new()?

来自分类Dev

具有新类型约束的泛型构造函数

Related 相关文章

  1. 1

    使泛型类的函数仅接受具有相同泛型类型但受更多约束的参数

  2. 2

    在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

  3. 3

    具有多个类型参数的泛型推断类型

  4. 4

    Typescript中具有泛型的子类型约束

  5. 5

    具有类参数的泛型类型推断

  6. 6

    泛型类中的多个约束

  7. 7

    具有对其他类型参数的约束的类型参数的泛型推断

  8. 8

    如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

  9. 9

    Kotlin 中具有两个类型参数的泛型类

  10. 10

    为什么实现具有类型约束的泛型接口的泛型类需要重复这些约束?

  11. 11

    c#中具有多个类型参数的泛型方法

  12. 12

    具有不同类型泛型参数的方法的泛型类

  13. 13

    如何使用已知类型作为参数创建具有泛型的泛型类?

  14. 14

    类中具有2个泛型类型的方法,其中1个泛型类型

  15. 15

    类中具有2个泛型类型的方法,其中1个泛型类型

  16. 16

    为什么在具有可比约束的泛型函数中丢失泛型类型信息?

  17. 17

    具有泛型的Scala类型类

  18. 18

    具有接口类类型的泛型

  19. 19

    具有多个特征的泛型类型

  20. 20

    具有多个泛型类型的ArrayList?

  21. 21

    具有两个类型约束和接口实现的泛型类

  22. 22

    具有类型约束的泛型类上的F#模式匹配

  23. 23

    如何将主构造函数添加到具有类型约束的泛型类?

  24. 24

    在具有不同泛型参数的抽象类中返回泛型是不好的做法

  25. 25

    java类中的多个泛型类型

  26. 26

    Kotlin抽象类,具有泛型参数和使用类型参数的方法

  27. 27

    检查对象是否是具有多个类型参数的泛型类型

  28. 28

    如何约束泛型类型以使其具有new()?

  29. 29

    具有新类型约束的泛型构造函数

热门标签

归档