ReactiveCommand 如何从 ICommand 派生而不显然实现它?
How can ReactiveCommand derives from ICommand without, apparently, implementing it?
在ReactiveUI
中,classReactiveCommand
派生自接口ICommand
。但是,它的 public API 似乎没有实现 Execute
和 CanExecute
.
这怎么可能?
ReactiveCommand
实现了 ICommand
explicitly,这意味着如果您的变量类型为 ICommand
:
,您只能访问这些成员
ReactiveCommand<Unit, Unit> command = ...;
// compile error
command.Execute();
// compiles fine
(command as ICommand).Execute();
这是为了鼓励您不要使用它,因为反应式界面更优越,但仍然有助于与依赖它的UI工具包(如 WPF)集成.
在ReactiveUI
中,classReactiveCommand
派生自接口ICommand
。但是,它的 public API 似乎没有实现 Execute
和 CanExecute
.
这怎么可能?
ReactiveCommand
实现了 ICommand
explicitly,这意味着如果您的变量类型为 ICommand
:
ReactiveCommand<Unit, Unit> command = ...;
// compile error
command.Execute();
// compiles fine
(command as ICommand).Execute();
这是为了鼓励您不要使用它,因为反应式界面更优越,但仍然有助于与依赖它的UI工具包(如 WPF)集成.