Я реализую 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
) также вариант