Estou implementando a DelegateCommand
e, quando estava prestes a implementar o (s) construtor (es), criei as duas seguintes opções de design:
1: Tendo vários construtores sobrecarregados
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2: Ter apenas um construtor com um parâmetro opcional
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
Não sei qual usar, porque não sei quais vantagens / desvantagens possíveis vêm com uma das duas formas propostas. Ambos podem ser chamados assim:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
Alguém pode me indicar a direção certa e dar feedback?
Bitmap.FromFile
) também são uma opção