基于System.Drawing.Graphics的List <action>的执行顺序

时间:2019-03-31 05:15:42

标签: c# list action system.drawing.graphics

这是我第一次在这里发布文章,因此如果我发现错误的代码格式,请提前道歉。我正在用C#编写一个简单的GDI +渲染器类。这是我的代码的简化版本:

public interface IRenderer
{
    void Begin();
    void ClearFrame(byte R, byte G, byte B);
    byte[] End();

}

public class RendererGDI : IRenderer
{
    List<Action> renderFunctions;
    Bitmap b = new Bitmap(256,256);
    Graphics g = Graphics.FromImage(b);

    public RendererGDI()
    {
        renderFunctions = new List<Action>();
    }

    void Begin()
    {
        renderFunctions.Clear();
    }

    void ClearFrame(byte R, byte G, byte B)
    {           
        renderFunctions.Add(() => g.Clear(Color.FromArgb(255, R,G,B)));
    }

    byte[] End()
    {
        foreach (Action func in renderFunctions)
            func();
    }
}

End()函数尚未完全实现,但是我想知道这是否是存储System.Drawing.Graphics操作和 only 的正确方法,让它们在End()内部执行功能?

非常感谢您的时间和帮助。

克雷格。

0 个答案:

没有答案