Ich implementiere eine DelegateCommand
, und als ich den oder die Konstruktoren implementieren wollte, hatte ich die folgenden zwei Entwurfsoptionen:
1: Mehrere überladene Konstruktoren
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2: Nur einen Konstruktor mit einem optionalen Parameter
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
Ich weiß nicht, welchen ich verwenden soll, weil ich nicht weiß, welche möglichen Vor- / Nachteile mit einem der beiden vorgeschlagenen Wege verbunden sind. Beide können wie folgt aufgerufen werden:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
Kann mich bitte jemand in die richtige Richtung weisen und Feedback geben?
Bitmap.FromFile
) sind ebenfalls eine Option