Проведите влево или вправо, чтобы показать метку времени

Чтобы любой код в статическом или нестационарном классе вызывал нестатический метод, вызывающий должен иметь ссылку на объект, на который выполнен вызов.

В вашем case, Bar 's MethodCaller должен иметь ссылку на Foo. Вы можете передать его в конструкторе Bar или любым другим способом, который вам нравится:

class Foo
{
    Bar b1 = new Bar(this);

    public object MethodToCall(){ /*Method body here*/ }
}

Class Bar
{
    private readonly Foo foo;

    public Bar(Foo foo) {
        // Save a reference to Foo so that we could use it later
        this.foo = foo;
    }

    public void MethodCaller()
    {
        // Now that we have a reference to Foo, we can use it to make a call
        foo.MethodToCall();
    }
}
0
задан Kashif Ahmed 4 March 2019 в 06:59
поделиться