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