Обновить ссылку (`ref`) разностным методом - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь обновить переменную ref container, которая была передана через конструктор, чтобы она стала равной новому объекту в методе Run. Конечно, в методе Run я обновляю ссылку на Foo::_container, а не на переменную container, определенную в Main. Поэтому мне интересно, есть ли способ сохранить ссылку на контейнер, которая была передана через конструктор, и впоследствии обновить значение ссылки. Спасибо.

public class Foo
{
    private IContainer _container;

    public Foo(ref IContainer container)
    {
        _container = container;
    }

    public void Run()
    {
        var temp = new Container();
        _container = temp;
    }
}


static class Main
{
    static void Main()
    {
        IContainer container = null;
        (new Foo(ref container)).Run();

        // container is still null
        Console.WriteLine(container);
    }
}
...