从子类调用方法

jos*_*ose 1 c# parent-child method-call

在Silverlight/C#中,我有一个Main类,它创建了一个Child实例,Child _child = new Child(...)

现在,在Child类中,我需要从Main类调用一个方法.最好的方法是什么?活动?

Ant*_*lev 7

最简单的解决方案是提供MainChild类实例的引用:

public class Child
{
    private Main main;

    public Child(Main main)
    {
        this.main = main;

        main.Bar();
    }
}

public class Main
{
    public void Foo()
    {
        Child c = new Child(this);
    }

    public void Bar()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以通过抽象掉接口Main后面的类来进一步改进IMain,以便最小化耦合.

但最好的解决方案是利用事件冒泡