我有一个名为GamePlay的ViewController类。在GamePlay中,有一个名为MyPinAnnotationView的嵌套类。当MyPinAnnotation的方法TouchesBegan()被调用时,我想从父级GamePlay调用方法CheckAnswer()。

我不想创建新的GamePlay实例,因为我已经设置了变量和实例。我可以通过某种方式访问​​父母吗? (事件侦听器除外)

最佳答案

嵌套类将只能引用父级中的静态成员。如果要访问实例成员,则需要获取对该实例的引用。最简单的方法是将其作为参数添加到MyPinAnnotationView的构造函数中,如下所示:

class MyPinAnnotationView
{
  private GamePlay gamePlay;

  public MyPinAnnotationView(GamePlay gamePlay)
  {
    this.gamePlay = gamePlay;
  }

  public void TouchesBegan()
  {
    this.gamePlay.CheckAnswer();
  }
}


MyPinAnnotationView实例化GamePlay时,只需执行以下操作:

MyPinAnnotation annotation = new MyPinAnnotation(this);

关于c# - 嵌套的C#类-从内部调用外部方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1702763/

10-13 06:03