Как присвоить свойству класса тип Func <> - PullRequest
0 голосов
/ 28 августа 2018

Хорошо, у меня есть класс. В этом классе у меня есть следующее свойство:

private Func<object, OutputEventArgs> _outputMethod = null;
    public Func<object, OutputEventArgs> OutputMethod
    {
        get { return _outputMethod; }
        set { _outputMethod = value; }
    }

Я хочу, чтобы класс мог вызывать этот метод, который позволит ему отправлять выходные данные (сообщения об ошибках и т. П.) Куда-либо по моему выбору.

Кажется, это работает нормально, но проблема возникает, когда я хочу присвоить это свойство.

У меня есть другой класс с именем OutputHandler, который выглядит следующим образом:

public static class OutputHandler
{
    public static void HandleOutput(OutputEventArgs e)
    {

    }
}

Я знаю, что мог бы просто вызвать этот метод непосредственно из рассматриваемого класса, но я хочу навязать какое-то разделение интересов.

Итак, мое назначение выглядит следующим образом (c1 является экземпляром класса с Func в нем):

c1.OutputMethod = ????

Я пробовал несколько вещей, но ни одна из них не работает. Я также просмотрел этот сайт и пока ничего не нашел.

1 Ответ

0 голосов
/ 28 августа 2018

Как уже упоминалось, вы можете изменить свой OutputMethod на Action вместо Func, или , который вы можете изменить:

public static void HandleOutput(OutputEventArgs e)
{

}

до

public static object HandleOutput(OutputEventArgs e)
{

}
...