可能重复:
Why do RelayCommands typically use lazy initialization?
大多数开发人员似乎在ViewModel中懒惰地初始化命令,使用类似于此的代码:
private DelegateCommand _myCommand;
public ICommand MyCommand
{
get
{
if (_myCommand == null)
{
_myCommand = new DelegateCommand(SomeAction);
}
return _myCommand;
}
}
我遵循相同的模式,主要是出于习惯,但现在我想知道它是否真的有用...... DelegateCommand
或RelayCommand
是一个非常轻量级的对象,所以我看不到在这种情况下,延迟初始化的好处。此外,代码更清晰,没有延迟初始化:
private readonly DelegateCommand _myCommand = new DelegateCommand(SomeAction);;
public ICommand MyCommand
{
get { return _myCommand; }
}
你怎么看?是否有任何令人信服的理由懒洋洋地初始化命令?