【发布时间】:2018-11-30 12:44:39
【问题描述】:
我认为新的 C# 6.0 属性初始化器是这样的。
public MyType MyProperty { get; } = new MyType(OtherProperty);
相当于这个
private MyType _myVariable;
public MyType MyProperty { get { return _myVariable ?? _myVariable = new MyType(OtherProperty); } }
(OtherProperty 作为实例的一部分可用,不限于静态)
但在上面首先我得到“字段初始值设定项不能引用非静态字段”。我做错了吗,还是属性初始化器和
一样受限public readonly MyType MyVariable = new MyType(NeedsStaticReference);
【问题讨论】:
-
@PhilMasterG 不是,我问的是 C# 6.0 中新增的属性初始化器
-
虽然它们看起来相同,但它们并不相同
-
其实相当于初始化一个私有字段,所以必须使用非静态初始化器。
标签: c# properties c#-6.0 initializer property-initializer