0

我想在对象初始化时覆盖一个方法,如下所示:

Button = new Button(parameter1, parameter2){
        public override onClicked(){
           //implementation
       }
};

这就是得到的:

public class Button:Entity
{
    protected Texture2D texture2D;
    public Vector2 vector2; 

    public Button(Texture2D image, Vector2 position
    {
        this.image = image;
        this.position = position;
        this.action = action;
    }

    public abstract void onClicked();

}

abstract class Entity
{
    public Vector2 position;
    public int radius = 20;
    protected Texture2D image;

    public virtual void draw(SpriteBatch spriteBatch)
    {
        spriteBatch.Draw(image,position,Color.White);
    }
}

我只是尝试像我之前所说的那样做一个实现,但它没有编译。如何让它编译或实现这样的“每个实例”覆盖?

4

1 回答 1

3
public class Button:Entity
{    
  //Vector, Radius and texture are already part of Button, since it extend Entity 
  public EventHandler onClicked;

  public Button(Texture2D image, Vector2 position)
  {
    this.image = image;
    this.position = position;
    this.action = action;
  }
}

abstract class Entity
{
  public Vector2 position;
  public int radius = 20;
  protected Texture2D image;

  public virtual void draw(SpriteBatch spriteBatch)
  {
    spriteBatch.Draw(image,position,Color.White);
  }
}

并以这种方式使用它:

Button = new Button(parameter1, parameter2){
   onClicked = new EventHandler(NameOfYourMethod);
};
于 2013-10-18T04:54:37.440 回答