我一直注意到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;
}
}并且没有后备存储和空合并操作符,例如:
public ICommand SubmitCommand
{
get
{
return new MvxCommand(DoSubmit);
}
}哪个是首选,为什么?
发布于 2015-08-24 22:41:52
第一个版本简单地减少了创建对象的数量,因为无论访问命令属性多少次,都只存在一个实例。
在大多数情况下,这可能并没有多大的区别。大多数人使用代码段来生成代码,所以不需要任何额外的类型来生成正确的代码。
https://stackoverflow.com/questions/32191386
复制相似问题