我试图覆盖一个抽象函数,但在为列表指定类型时收到错误。该类型具有基抽象类正在请求的接口。
基本渲染器
public abstract class Renderer
{
abstract void Render(Dictionary<GenericVAO, List<IEntity>> data);
}
精灵渲染器
public class SpriteRenderer : Renderer
{
public override void Render(Dictionary<GenericVAO, List<Sprite>> data) {}
}
精灵
public class Sprite : IEntity
{
public SpriteVAO model;
}
在渲染器中使用泛型,使其仅适用于派生类怎么样
例如:
public abstract class Renderer<T> where T : IEntity
{
abstract void Render(Dictionary<GenericVAO, List<T>> data);
}
不确定GenericVAO是否也应该是T类型的VAO。不知道自己到底在做什么。
精灵渲染器覆盖然后变为:
public class SpriteRenderer : Renderer<Sprite>
{
public override void Render(Dictionary<GenericVAO, List<Sprite>> data) {}
}