这段代码是否值得编写:
RelayCommand _saveCommand;
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(this.Save);
}
return _saveCommand;
}
}
而不是每次只返回新对象:
public ICommand SaveCommand
{
get { return new RelayCommand(this.Save); }
}
据我所知,命令获取器很少使用,而且RelayCommand的构造函数非常快速。编写更长的代码是否更好?
return _saveCommand ?? (_saveCommand = new RelayCommand(this.Save));
- Brunnerreadonly RelayCommand _saveCommand=new RelayCommand(Save); public ICommand SaveCommand {get { return _saveCommand; }}
? - Steve B_saveCommand=new RelayCommand(Save);
。 - Steve BCanExecute
委托也可以传递给构造函数,而CanExecuteChanged
则使用System.Windows.Input.CommandManager
进行管理(请参见RelayCommand
源代码的链接)。 - Poma