令人信服的理由在MVVM中使用延迟初始化命令?

时间:2011-07-29 14:31:49

标签: mvvm command lazy-initialization

  

可能重复:
  Why do RelayCommands typically use lazy initialization?

大多数开发人员似乎在ViewModel中懒惰地初始化命令,使用类似于此的代码:

    private DelegateCommand _myCommand;
    public ICommand MyCommand
    {
        get
        {
            if (_myCommand == null)
            {
                _myCommand = new DelegateCommand(SomeAction);
            }
            return _myCommand;
        }
    }

我遵循相同的模式,主要是出于习惯,但现在我想知道它是否真的有用...... DelegateCommandRelayCommand是一个非常轻量级的对象,所以我看不到在这种情况下,延迟初始化的好处。此外,代码更清晰,没有延迟初始化:

    private readonly DelegateCommand _myCommand = new DelegateCommand(SomeAction);;
    public ICommand MyCommand
    {
        get { return _myCommand; }
    }
你怎么看?是否有任何令人信服的理由懒洋洋地初始化命令?

0 个答案:

没有答案