Lazy Initialization

private Widget _MyWidget = null;
public Widget MyWidget
{
	get 
	{
		if (_MyWidget == null)
			_MyWidget = Widget.Load();
		return _MyWidget;
	}
	// Or with the null-coalescing operator ??
	// get => _MyWidget ?? Widget.Load();
}

Value Holder

private ValueHolder<Widget> valueHolder;
public Widget MyWidget => valueHolder.GetValue();

Ghost

Virtual Proxy