在Func delgate中调用Func委托的方法

时间:2019-07-19 09:19:38

标签: delegates func c#-6.0

我是现有代码中的新Func委托,其中只有一个函数。有人可以解释如何使用Func委托吗?

public static ListColumn SetBColorFunction(this ListColumn column, Func<object, Func<object>, Color> colorFunction)
    {
        column.BackColorFunction = colorFunction;
        return column;
    }

现在我想知道调用上述函数的方式是什么?

1 个答案:

答案 0 :(得分:0)

您的方法说明:

  1. SetBColorFunction是扩展方法,因此您无需传递第一个参数。
  2. 它采用一种方法,该方法将一个委托和一个Color作为参数并返回一个object。委托可以采用返回object并且不采用任何参数的方法。

因此,基于此理解,请尝试以下解决方案。

解决方案1:

Color Callback(object o, Func<object> func)
{
    object obj = func();
    return new Color();
}

void Consumer()
{
    ListColumn listColumn = new ListColumn();
    listColumn.SetBColorFunction(Callback)
}

解决方案2: 使用lambda。

void Consumer()
{
    ListColumn listColumn = new ListColumn();
    listColumn.SetBColorFunction((obj, func) => {// Do your work and return object})
}