【发布时间】:2015-02-27 20:01:33
【问题描述】:
我有一个基类,它需要初始化一个变量,该变量将根据调用构造函数的孩子而改变。 所以,
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”实际上是一个接口,因此错误表明该接口中没有定义构造函数。
我希望接口下的构造函数被调用...我该怎么做?
【问题讨论】:
-
让孩子实例化它。为什么要尝试在基类中做呢?
-
不清楚你的意思。也许
public abstract class TestClass<T> { readonly T field; protected TestClass(T passed_in_constructor) { field = passed_in_constructor; } }你能举个例子来说明应该如何使用它吗? -
基本上“变量”将是不同类型的控制器。我需要能够实例化传入的任何一个
-
这听起来确实像是一个 XY 问题。
-
为什么你不能以
T的身份通过课程?为什么是界面?
标签: c# constructor function-pointers