我有一个基类需要初始化一个变量,该变量将根据调用构造函数的子项而改变。 所以,
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;实际上是一个接口,因此错误表明此接口中没有定义构造函数。
我希望接口下的构造函数能够被调用...我该怎么做?
答案 0 :(得分:1)
传递Func
。让孩子决定如何处理该变量:
class Foo<T>
{
T variable;
string parameter;
public Foo(Func<string, T> action)
{
variable = action(parameter);
}
}