Coo*_*per 4 c# inheritance xna class
我有一个类,Player,它继承自AnimatedSprite.AnimatedSprite有一个受保护的抽象方法loadAnimations,播放器必须覆盖它才能加载实际的动画(因为动画会根据精灵图像而变化,它需要由派生自AnimatedSprite的类实现).
但是,当我强制类用户实现该方法时,是否有办法强制用户实际调用此方法,最好是在Player构造函数中,以确保始终加载动画?我很确定C#没有任何语言功能可以做到这一点(虽然我可能是错的),所以也许我可以实现一个更好的类设计模式,我正在监督?
一如既往,提前谢谢!
Mar*_*ell 10
实际上不建议在构造函数中调用虚方法,因为它们可能使用尚未初始化的状态(尚未调用相关的构造函数).
就个人而言,我只有一个抽象的方法,你可以在构造函数后调用,也许通过工厂:
static T Create<T>() where T : TheBase, new()
{
T obj = new T();
obj.Init();
return obj;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |