C#惰性属性在构造函数上初始化

时间:2019-01-21 13:46:39

标签: c# properties lazy-initialization

我的视图模型中有惰性命令:

private ICommand _testCommand;
public ICommand TestCommand => _testCommand ?? (_testCommand = new Command(Test));

,由于某种原因,它在构造函数上被调用和初始化。 这是构造函数:

public TestViewModel(IMediator mediator, IDispatcherService dispatcherService, IGroupService groupService)
{
    _mediator = mediator;
    _dispatcherService = dispatcherService;
    _groupService = groupService;
}

命令未绑定在UI中,除了在单元测试中,该属性不会在任何地方被调用,在单元测试中,构造属性之前调用视图模型时会发生此问题。

我尝试将断点放在属性上,当它在调用堆栈中输入断点时,它表明调用此属性的最后一个是[外部代码],而在此之前是构造函数。

有人知道这里到底发生了什么吗?

0 个答案:

没有答案