在差分方法中更新引用(`ref`)

时间:2018-04-30 23:29:21

标签: c# interface pass-by-reference ref

我正在尝试更新通过构造函数传递的变量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);
    }
}

0 个答案:

没有答案