2
例如,我有一个基类和一些子类,B和C是否可以创建构造函数的模板?
public class A
{
protected string data;
public A(string s)
{
this.LoadFromString(s);
}
public virtual void LoadFromString(string s)
{
data = s;
}
public static T CreateInstance<T>(string s) where T : A, new()
{
T instance = new T();
instance.LoadFromString(s);
return instance;
}
}
public class B : A
{
}
public class C : A
{
}
现在我想B和C的情况下,
class Program
{
static void Main(string[] args)
{
string s = "111";
//works
B bb = B.CreateInstance<B>(s);
//do not work
C cc = new C(s);
//do not work
C cc = C.CreateInstance(s);
}
}
是否可以界定一个东西让最后一个声明工作?
只是你知道,它的“泛型”在C#中。模板是一个“C++”概念,它们的工作方式稍有不同 – BradleyDotNET 2015-03-18 22:47:57
另外请注意,您的'B bb = B.Create ...'行不能像写入一样工作。 B类不会按原样编译。 – 2015-03-18 22:52:00