我正在实现DelegateCommand
,当我要实现构造函数时,我想到了以下两种设计选择:
1:具有多个重载的构造函数
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2:只有一个带有可选参数的构造函数
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
我不知道使用哪个,因为我不知道这两种建议的方式都有哪些优点/缺点。两者都可以这样称呼:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
有人可以指出正确的方向并提供反馈吗?
Bitmap.FromFile
)也是一个选项