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

ways to call Func delegate inside Func delegate

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

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

现在我想知道调用上面这个函数的方法有哪些?

您的方法描述:

  1. SetBColorFunction是一个扩展方法,所以你不需要传递第一个参数。
  2. 它采用一种方法,该方法采用委托和 Color 作为参数,returns 和 object。委托可以采用 returns 和 object 并且不采用任何参数的方法。

因此,有了这种理解,请尝试以下解决方案。

解决方案一:

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

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

方案二: 使用 lambda。

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