MvvmCross命令模式

时间:2015-08-24 20:41:49

标签: mvvmcross

我一直注意到两个类似的ICommand属性模式出现在示例中,特别是如MvvmCross wiki https://github.com/MvvmCross/MvvmCross/wiki/Databinding#rio所示:

private ICommand _submitCommand;
public ICommand SubmitCommand
{
    get
    {
         _submitCommand = _submitCommand ?? new MvxCommand(DoSubmit);
         return _submitCommand;
    }
}

没有后备存储和null-coalescing运算符,例如:

public ICommand SubmitCommand
{
    get
    {
         return new MvxCommand(DoSubmit);
    }
}

哪个是首选,为什么?

1 个答案:

答案 0 :(得分:2)

第一个版本只是减少了创建的对象数量,因为无论访问命令属性多少次,都只存在一个实例。

在大多数情况下,这可能没有太大的区别。大多数人使用代码片段来生成代码,因此不需要任何额外的输入来生成正确的代码。