C#动态分配类型给泛型函数

时间:2019-02-07 22:40:39

标签: c# generics lambda task

所以我有以下代表:

delegate Task<T> Atsk<T>();

我为类提供了一系列重载的构造函数。基于所使用的构造函数,我需要执行的实际功能会发生变化。尽管所需的类型会提前知道,但是直到适当的参数传递给构造函数时,我才知道它们是什么。

如果这些是构造函数:

myClass (int a) myClass (int a, int b) myClass (int a, string b)

基于此,我想执行以下操作:

Atsk<Type1> atsk = new Atsk<Type1>(myFunc);(如果对象是使用第一个构造函数创建的)

Atsk<Type2> atsk = new Atsk<Type2>(myFunc);(如果对象是使用第二个构造函数创建的)

Atsk<Type3> atsk = new Atsk<Type3>(myFunc);(如果对象是使用第三个构造函数创建的)

现在,通过使用条件逻辑并对类型和函数进行硬编码,它可以工作,但是我认为,如果我也可以设置构造函数中所需的类型和函数,那将是一件很不错的事情,这样我唯一的代码行就是d需要的是:

Atsk<myVariableType> atsk = new Atsk<myVariableType>(myVariableFunc);

直觉上,这感觉应该可以使用某种lambda来定义我在各种构造函数中需要的适当东西,尽管我不知道。 Type类似乎也不起作用。

0 个答案:

没有答案