我有一个名为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/