main
 1using gorilla.utility;
 2
 3namespace solidware.financials.windows.ui
 4{
 5    public interface UICommand
 6    {
 7        void run<T>(T presenter) where T : Presenter;
 8    }
 9
10    public abstract class UICommand<TPresenter> : UICommand where TPresenter : Presenter
11    {
12        void UICommand.run<T1>(T1 presenter)
13        {
14            run(presenter.downcast_to<TPresenter>());
15        }
16
17        public abstract void run(TPresenter presenter);
18    }
19}