在不引用所包含类的情况下访问包含在另一个类中的类中的方法

问题描述

我有一个Screen类,其中包含Monogame的SpriteBatch。我想访问SpriteBatch.Draw()方法,而不必执行Screen.spriteBatch.Draw(),而是:

screen.Draw(sprite,position,color);

我可以通过定义如下方法来做到这一点:

class Screen
{
    public void Draw(Texture2D texture,Rectangle rect,Color color)
    {
        spriteBatch.Draw(texture,rect,color);
    }
    public void Draw(Texture2D texture,Vector2 position,color);
    }

    .... and so on for every other override of SpriteBatch.Draw
}

但这显然很长​​,我宁愿不必手动键入每个替代。

有没有更简便的方法

解决方法

让Screen类继承自SpriteBatch,在代码中如下所示:

Screen : SpriteBatch