将构造函数传递给基类构造函数

时间:2015-02-27 20:01:34

标签: c# constructor function-pointers

我有一个基类需要初始化一个变量,该变量将根据调用构造函数的子项而改变。 所以,

public class TestClass<T> {
    T variable;
    string parameter;

    public TestClass(passed_in_constructor) {
        variable = passed_in_constructor(parameter);
    }
}

我该怎么做?

编辑:让我重新解释一下这个问题。以下是我正在尝试做的事情的另一种方式,我可以更好地解释错误和问题

我目前有以下课程:

public class Test<T> {
    SqlConnection conn;
    T genericGuy;

    public Test() {
        conn = ...this is initialized properly
        genericGuy = (T)Activator.CreateInstance(typeof(T), sqlConn);
    }
 }

然而,当我运行它时,我收到错误。我的T&#39;实际上是一个接口,因此错误表明此接口中没有定义构造函数。

我希望接口下的构造函数能够被调用...我该怎么做?

1 个答案:

答案 0 :(得分:1)

传递Func。让孩子决定如何处理该变量:

class Foo<T>
{
    T variable;
    string parameter;

    public Foo(Func<string, T> action)
    {
        variable = action(parameter);
    }
}