Sto implementando un DelegateCommand
, e quando stavo per implementare il / i costruttore / i, ho escogitato le seguenti due scelte progettuali:
1: Avere più costruttori sovraccaricati
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2: avere un solo costruttore con un parametro opzionale
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
Non so quale usare perché non so quali possibili vantaggi / svantaggi derivano da uno dei due modi proposti. Entrambi possono essere chiamati in questo modo:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
Qualcuno può indicarmi la giusta direzione e dare un feedback?
Bitmap.FromFile
) sono un'opzione