如何分配给 Func<> 类型的 class 属性

How to assign to a class property of type Func<>

好的,我有一个 class。在那 class 我有以下 属性:

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

我希望 class 能够调用此方法,该方法将允许它将输出(错误消息等)发送到我选择的某个地方。

这似乎工作正常,但当我想分配那个 属性 时,问题就来了。

我有另一个名为 OutputHandler 的 class,它看起来像这样:

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

    }
}

我知道我可以直接从有问题的 class 调用该方法,但我想强制执行某种关注点分离。

所以我的任务是这样的(c1 是 class 的一个实例,里面有 Func):

c1.OutputMethod = ????

我已经尝试了一些方法,但是 none 中的一些有效。我也查看了这个网站,但到目前为止什么都没有。

就像其他人提到的那样,您可以将 OutputMethod 更改为 Action 而不是 Func,您可以更改:

public static void HandleOutput(OutputEventArgs e)
{

}

public static object HandleOutput(OutputEventArgs e)
{

}