在类构造函数中使用泛型

米格尔·莫拉(Miguel Moura)

我有一个接口和一个抽象类及其派生类:

  public interface IIndicator<TInput, TOutput> { } 

  public abstract class Indicator<TInput, TOutput> : IIndicator<TInput, TOutput> {

    public abstract TOutput Calculate(TInput input);

  }

  public class MyIndicator : Indicator<Decimal, Decimal?> {

    public MyIndicator(IEnumerable<Decimal> inputs) {
      // Code using base.Calculate and inputs
    }

    public MyIndicator(IEnumerable<Decimal> inputs, Func<TMapper, Decimal> mapper) {

      // Code using base.Calculate, inputs and mapper 

    } 

    public override TOutput Calculate(TInput input) {
      // Implementation of Calculate
    }

  }

问题在于构造器中未定义TMapper:

public MyIndicator(IEnumerable<Decimal> inputs, Func<TMapper, Decimal> mapper, Int32 period)

我想将MyIndi​​cator用作:

MyIndicator indicator = new MyIndicator(inputs, x => x.Id)

代替:

MyIndicator<MyClass> indicator = new MyIndicator<MyClass>(inputs, x => x.Id)

哪里MyClass会是这样的:

public class MyClass { 
  public Int32 Id { get; set; }
}

这可能吗?

约翰娜森·巴克莱

使用工厂方法代替,例如

public static MyIndicator Create<TMapper>(IEnumerable<decimal> inputs, Func<TMapper, decimal> mapper, int period)
{
    var indicator = new Indicator(inputs);
    // do stuff with your mapper / period
    return indicator;
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在泛型中使用必需的构造函数继承类

来自分类Dev

泛型类的泛型构造函数

来自分类Dev

如何在函数调用中使用Typescript泛型类构造函数作为参数

来自分类Dev

使用反射从Type获取类,并在C#中使用Type调用泛型构造函数

来自分类Dev

使用泛型在抽象类中调用构造函数

来自分类Dev

使用泛型在抽象类中调用构造函数

来自分类Dev

可以在引入其他泛型类型的泛型类上使用构造函数吗?

来自分类Dev

具有泛型构造函数的泛型类?

来自分类Dev

使用类泛型构造的子类型

来自分类Dev

构造函数作为参数:推断类的泛型为函数

来自分类Dev

是否有可能在引入其他泛型类型的泛型类上使用构造函数?

来自分类Dev

使用约定在MEF 2中使用默认构造函数和开放泛型

来自分类Dev

在Java中,为什么不能在泛型类上使用构造函数?

来自分类Dev

如何在Java中使用不同的泛型构造函数

来自分类Dev

如何在Java中使用不同的泛型构造函数

来自分类Dev

在泛型方法中使用构造函数参数实例化对象

来自分类Dev

在泛型类中使用匿名类型

来自分类Dev

在泛型类中使用函子

来自分类Dev

何时在 TypeScript 中使用泛型类?

来自分类Dev

继承需要构造函数的泛型类型的抽象类

来自分类Dev

将泛型传递到类构造函数列表

来自分类Dev

继承需要构造函数的泛型类型的抽象类

来自分类Dev

继承类中的泛型和构造函数

来自分类Dev

实例化泛型类抛出“不是构造函数”

来自分类Dev

Delphi泛型:无法将类和构造函数约束的泛型类型转换为接口

来自分类Dev

java中泛型类中的非泛型构造函数

来自分类Dev

构造函数泛型问题

来自分类Dev

使用Java泛型接口/抽象类的构造方法

来自分类Dev

使用构造函数自动装配泛型类型[Spring 4.2.5]

Related 相关文章

  1. 1

    在泛型中使用必需的构造函数继承类

  2. 2

    泛型类的泛型构造函数

  3. 3

    如何在函数调用中使用Typescript泛型类构造函数作为参数

  4. 4

    使用反射从Type获取类,并在C#中使用Type调用泛型构造函数

  5. 5

    使用泛型在抽象类中调用构造函数

  6. 6

    使用泛型在抽象类中调用构造函数

  7. 7

    可以在引入其他泛型类型的泛型类上使用构造函数吗?

  8. 8

    具有泛型构造函数的泛型类?

  9. 9

    使用类泛型构造的子类型

  10. 10

    构造函数作为参数:推断类的泛型为函数

  11. 11

    是否有可能在引入其他泛型类型的泛型类上使用构造函数?

  12. 12

    使用约定在MEF 2中使用默认构造函数和开放泛型

  13. 13

    在Java中,为什么不能在泛型类上使用构造函数?

  14. 14

    如何在Java中使用不同的泛型构造函数

  15. 15

    如何在Java中使用不同的泛型构造函数

  16. 16

    在泛型方法中使用构造函数参数实例化对象

  17. 17

    在泛型类中使用匿名类型

  18. 18

    在泛型类中使用函子

  19. 19

    何时在 TypeScript 中使用泛型类?

  20. 20

    继承需要构造函数的泛型类型的抽象类

  21. 21

    将泛型传递到类构造函数列表

  22. 22

    继承需要构造函数的泛型类型的抽象类

  23. 23

    继承类中的泛型和构造函数

  24. 24

    实例化泛型类抛出“不是构造函数”

  25. 25

    Delphi泛型:无法将类和构造函数约束的泛型类型转换为接口

  26. 26

    java中泛型类中的非泛型构造函数

  27. 27

    构造函数泛型问题

  28. 28

    使用Java泛型接口/抽象类的构造方法

  29. 29

    使用构造函数自动装配泛型类型[Spring 4.2.5]

热门标签

归档