我有一个基类,如下所示:
public Data()
{
id = num++;
SetVariables();
}
//fill every Variable varNames, parseInduction, noise, seperator in Children Classes
public Data(String line)
{
//first declare all variables in sub classes
if (id == 0)
throw new NotSupportedException("You are not allowed to use this constructor for creating the first instance!");
id = num++;
SetVariables();
parseLine(line);
}
我也有扩展该类一个子类。
class DienstGruppe : Data
{
protected override void SetVariables(){
varNames = new String[] {"id", "name"};
parseInduction = "DienstGruppen = {";
parseEnd = "};";
beginOfDataLine = "<";
endOfDataLine = ">";
noise = new String[] { "\"" };
}
}
我尝试使用Activator.CreateInstance()函数创建一个对象如下:
Data myData = (Data)Activator.CreateInstance(this.GetType(), new object[] { line });
注:this.GetType()是数据的功能被扩展类使用,以获得当前类的类型。
但是,这会导致一个问题。 Bizzarly我得到一个错误,这个类(在我的情况DienstGruppe)不具有构造函数。 我想继承不是在C#中的java相同。 那么,如何解决这个问题?
它适用于“数据”虽然。
问候,多米尼克