我有一个“游戏类”,看起来像这样:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenTK;
namespace MyGame
{
class Game : GameWindow
{
Player player;
List<Enemy> enemies;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// Initialize stuff here
}
protected override void OnUpdateFrame(FrameEventArgs e)
{
base.OnUpdateFrame(e);
// Call Update on the player and the enemies
}
protected override void OnRenderFrame(FrameEventArgs e)
{
base.OnRenderFrame(e);
// Call Draw on the player and the enemies
}
static void Main(string[] args)
{
using (var game = new Game())
{
game.Run();
}
}
}
}
但现在我遇到了障碍。Player
对象和Enemy
对象现在需要保存对需要手动分配和释放的 OpenGL 缓冲区的引用。在 C# 中针对这种事情的建议解决方案似乎是使用IDisposable
. using
当您仅将其保留在一种方法中时,这似乎很方便。但是,如果将其保留为成员变量,如何以最佳方式解决此问题?