C#用泛型数据覆盖抽象函数



我试图覆盖一个抽象函数,但在为列表指定类型时收到错误。该类型具有基抽象类正在请求的接口。

基本渲染器

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) {}
}

最新更新