<分区>
为这个糟糕的标题道歉,我想不出更好的措辞方式。
本质上,我有一个抽象基类 Category
和继承自它的所有派生类。是否可以按照以下方式做一些事情:
List<Category> catList = new List<Category>();
catList.Add(new Category(myCategoryTypeString));
myCategoryTypeString
将始终是其中一个派生类的名称,并让它创建该派生类的新对象(大概使用字符串上的开关来确定要使用的类) .
所以类似的东西:
catList.Add(new Category("Engineering"));
要向列表中添加Engineering : Category
类型的新对象吗?
如果可能的话,人们会怎么做呢?我的抽象类是这样定义的:
abstract class Category
{
private string line;
private bool ToChallenge;
private string[] columns;
private int oppLevel;
protected Category(string line)
{
this.line = line;
columns = line.Split(',');
}
public abstract bool IsAnomoly();
public abstract void CategoriseAnomoly();
public abstract void WriteLine();
}