@romaro

Как правильно передавать ссылку на метод в инстанс класса?

Мне нужно создать фабрику, которая производит слабо типизированные объекты. Под "слабо типизированными" имею в виду, что у функционального выражения, которое я пытаюсь передать в инстанс класса, может быть разный тип единственного аргумента:

public static class TestLabelFactory
    {
        public static ISupportedLabel W43xH25_TscLib
        {
            get {
                var executor = (TestLabelTask labelTask) => {
                    TscLibAdapter.Init(labelTask.LabelSetup.PrinterName);
...
                    TscLibAdapter.Print(labelTask.Copy);
                };

                var cls = new SupportedLabel() {
                    CommonLabel = CommonLabelFactory.TestLabel,
...
                    ExecutePrint = ??? executor ???
                };

                return cls;
            }
        }
    }


Я не совсем понимаю, как мне добиться того, чтобы объект впоследствии можно было бы использовать таким образом:
(SomeObj as ISome).ExecutePrint(arg)

Наличие метода ExecutePrint я предварительно выясню через Reflection, как и его тип. Но как мне захостить сам метод? Или здесь вообще все не так?
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Action, Func вам в помощь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы