Tag: 延迟初始化

在C#中协变使用genericsLazy类

假设这适用: public class Cat : Animal { } 并假设我有一个方法: public void Feed(Animal animal) { … } 我可以这样称呼它: var animal = new Cat(); Feed(animal); 当Feed被重构为仅支持Lazy作为参数时,如何才能使其正常工作? 我想传入我的var lazyAnimal = new Lazy(); 不知何故。 这显然不起作用: var lazyAnimal = new Lazy(); Feed(lazyAnimal);

为什么RelayCommands通常使用延迟初始化?

当使用Josh Smith的RelayCommand时 ,我见过的大多数例子都使用延迟初始化,例如: public class ViewModel { private ICommand myCommand; public ICommand MyCommand { get { if (myCommand == null) { myCommand = new RelayCommand(p => DoSomething() ); } return myCommand; } } // … stuff … } 而不是在构造函数中创建RelayCommand,如下所示: public class ViewModel { public ViewModel() { MyCommand = new RelayCommand(p => DoSomething()); } public ICommand […]