在类中有一个对象属性,在首次访问该属性之前,我不希望创建该对象。我可以使用以下代码来实现:
private XObject _myObject;
public XObject MyObject
{
get
{
if (_myObject == null)
_myObject = new XObject(this);
return _myObject;
}
}
这又可以重构为:
private XObject _myObject;
public XObject MyObject { get => _myObject ?? (_myObject = new XObject(this)); }
但是在不使用背景字段的情况下也可以达到相同的结果吗?
我不能使用Lazy<T>
,因为'this
'是作为参数传递的。