I thought the new C# 6.0 property initializers like this.

```
public MyType MyProperty { get; } = new MyType(OtherProperty);

```

was the equivalent of this

```
private MyType _myVariable;
public MyType MyProperty { get { return _myVariable ?? _myVariable = new MyType(OtherProperty); } }

```

(that OtherProperty is available as part of the instance, not limited to being static)

But in the above first I get "field initializers cannot reference non-static field". Am I doing it wrong, or are property initializers just as limited as

```
public readonly MyType MyVariable = new MyType(NeedsStaticReference);

```