【发布时间】:2013-04-16 20:42:32
【问题描述】:
所以我希望设置一个抽象基类来派生子类。所有的工作都将在孩子们身上进行,但我希望孩子们能够相互参考。
这是一些伪代码:
public abstract class BaseClass<T> : SomeOtherClass {
public List<BaseClass> listOfChildren;
protected T thisChild;
public void DoMoreStuff(){
Debug.Log("Doing more stuff");
}
protected virtual void DoSomething(int i){
listOfChildren[i].DoMoreStuff();
}
}
public class FirstChildClass : BaseClass<FirstChildClass> {
FirstChildClass<T>(){
thisChild = this;
}
public void FirstClassStuff(){
Debug.Log("first class stuff");
}
}
public class SecondChildClass : BaseClass<SecondChildClass> {
public void SecondClassStuff(){
Debug.Log("second class stuff");
}
}
我如何制作一个通用列表来接受任何子类?
我是否需要使用 T 对 listOfChildren 进行类型转换才能使用 DoMoreStuff()?
就其本身而言,此设置是否存在其他固有问题?
【问题讨论】:
标签: c# inheritance