を実装しDelegateCommand
ていますが、コンストラクターを実装しようとしていたときに、次の2つの設計の選択肢を思いつきました。
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:オプションのパラメーターを持つコンストラクターを1つだけ持つ
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
どちらを使用するかわからないのは、提案された2つの方法のいずれかにどのような利点/欠点があるかわからないからです。両方とも次のように呼び出すことができます:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
誰かが私を正しい方向に向けてフィードバックをお願いできますか?
Bitmap.FromFile
)もオプションです