J'implémente un DelegateCommand
, et quand j'étais sur le point d'implémenter le ou les constructeurs, j'ai proposé les deux choix de conception suivants:
1: Avoir plusieurs constructeurs surchargés
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2: Avoir un seul constructeur avec un paramètre facultatif
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
Je ne sais pas lequel utiliser parce que je ne sais pas quels avantages / inconvénients possibles viennent avec l'une des deux façons proposées. Les deux peuvent être appelés comme ceci:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
Quelqu'un peut-il m'orienter dans la bonne direction et donner des commentaires?
Bitmap.FromFile
) sont également une option