本帖最后由 alydsd471147 于 2010-01-28 17:36:32 编辑

解决方案 »

  1.   

    delegate { }
    就是一个匿名方法,并自动匹配委托类型,比如你的方法签名是 StartTest(Action action),那么这里的 delegate {} 等同于 delegate() {},如果你的方法签名是 StartTest(Action<object> action),那么这里的 delegate {} 等同于 delegate(object obj) {},而唯一的区别是你无法在匿名方法体内引用到这个参数(obj)。
      

  2.   

    如果写成这样
    delegate(object obj) {}
    就能引用obj了吗?
    delegate void TestDelegate();
    class TestPongGame : PongGame
    {
      TestDelegate testLoop;
      public TestPongGame(TestDelegate setTestLoop)
      {
        testLoop = setTestLoop;
    } // TestPongGame(setTestLoop)
      protected override void Draw(GameTime gameTime)
      {
        base.Draw(gameTime);
        testLoop();
      } // Draw(gameTime)
    } // class TestPongGamestatic TestPongGame testGame;
    static void StartTest(TestDelegate testLoop)
    {
      using (testGame = new TestPongGame(testLoop))
      {
        testGame.Run();
      } // using
    } // StartTest(testLoop)这样子的,用
    得到的效果:就是在testGame.Run();时运行delegate{...}中的方法,对吗?如果这样是对的话,这么绕来绕去用委托到底有什么好处?委托并不能加快运行速度吧?
    是为了修改方便?
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/0yw3tz5k(VS.80).aspx