Why is `this` not available in C# 6.0 Auto-Property Initialization?

Viewed 3256

I have the following code class:

public class Foo
{
    public Nested Bar { get; } = new Nested(this);

    public class Nested
    {
        public Nested(Foo foo)
        {
            foo.DoSomething();
        }
    }

    private void DoSomething()
    {

    }
}

However, I get this compile error:

Keyword 'this' is not available in the current context

I can fix it by simply not using Auto-Property Initializer, and explicitly move it into a constructor instead:

public Nested Bar { get; }

public Foo()
{
    this.Bar = new Nested(this);
}

Why is it so? Isn't Auto-Property Initializer actually translated into constructor code in IL?

2 Answers
Related