如何在C#中创建常规列表/模板列表
作者:互联网
我有一个带有几个继承成员的主类,这些成员都重载了父类的同一个Draw方法,但是具有不同的Initialize方法.是否可以对每个继承的类使用相同的列表类型,从而能够遍历Draw方法?我很确定您可以使用C中的模板来执行此操作,但似乎找不到在C#中执行此操作的方法.这是一个例子:
class MainMenu : ExpandingWindow{
Init(A,B)
Draw(D)
}
class SideMenu : ExpandingWindow{
Init(A,B,C)
Draw(D)
}
我希望能够做到:
WindowList List<ExpandingWindow>
WindowList.Add(new MainMenu)
WindowList.Add(new SideMenu)
WindowList[0].Initialize(A,B)
WindowLIst[1].Initialize(A,B,C)
和:
for each window in WindowList{
window.Draw(D)
}
我很确定我在这里错过了一些东西.我不必以这种确切的方式来做,而是要寻找一种很好的方式来处理这些情况.
谢谢!
解决方法:
尝试:
IList<ExpandingWindow> windows = new List<ExpandingWindow>();
// initialize them via constructor
windows.Add(new MainMenu(A, B));
windows.Add(new SideMenu(A, B, C));
foreach(var window in windows) {
window.Draw();
}
标签:xna-4-0,c,net 来源: https://codeday.me/bug/20191201/2078944.html