日期:2014-05-18  浏览次数:21516 次

c# 错误 CS0115: “RPG.Form1.Dispose(bool)”: 没有找到适合的方法来重写
源代码:(还有一堆没用的,没贴)
namespace Sprite_Demo
{
  public partial class Form1 : Form
  {
  private bool p_gameOver = false;
  private int p_startTime = 0;
  private int p_currentTime = 0;
  public Game game;
  public Bitmap dragonImage;
  public Sprite dragonSprite;
  public Bitmap grass;
  public int frameCount = 0;
  public int frameTimer = 0;
  public float frameRate = 0;
  public PointF velocity;
  public int direction = 2;
  private void Form1_Load(object sender, EventArgs e)
  {
  Main();
  }
  public Form1()
  {
  InitializeComponent();
  }
  private void Form1_KeyDown(object sender, KeyEventArgs e)
  {
  Game_KeyPressed(e.KeyCode);
  }
  private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  {
  Shutdown();
  }
  public void Main()
  {
  Form form = (Form)this;
  game = new Game(ref form, 800, 600);
  //load and initialize game assets
  Game_Init();
  while (!p_gameOver)
  {
  //update timer
  p_currentTime = Environment.TickCount;
  //let gameplay code update
  Game_Update(p_currentTime - p_startTime);
  //refresh at 60 FPS
  if (p_currentTime > p_startTime + 16)
  {
  //update timing
  p_startTime = p_currentTime;
  //let gameplay code draw
  Game_Draw();
  //give the form some cycles
  Application.DoEvents();
  //let the game object update
  game.Update();
  }
  frameCount += 1;
  if (p_currentTime > frameTimer + 1000)
  {
  frameTimer = p_currentTime;
  frameRate = frameCount;
  frameCount = 0;
  }
  }
  //free memory and shut down
  Game_End();
  Application.Exit();
  } }
}

------解决方案--------------------
楼主,WinForm一般不会包这个错误,Dispose方法由系统释放资源是自动调用!
MSDN上面是这样说明的:

此方法由公共方法 Dispose 和 Finalize 方法调用。Dispose 调用 disposing 参数设置为 true 的受保护方法 Dispose(Boolean)。Finalize 调用 disposing 设置为 false 的 Dispose 的方法。

当 disposing 参数为 true 时,此方法释放该 Form 引用的、由任何托管对象持有的全部资源。此方法调用每个引用对象的 Dispose 方法。

给继承者的说明 Dispose 可以由其他对象多次调用。重写 Dispose(Boolean) 时,请注意不要引用在以前调用 Dispose 时已释放的对象。

你看看你的Shutdown(),Game_End()函数有没有做特殊处理。
你可以试作把一些代码屏蔽,逐步缩小范围,直至最后确定问题点!