c# - 如何使用 Func<> 返回方法的引用?

标签 c#

我有一些简单的代码,但我正在努力找出正确的语法来将方法作为引用返回,以便可以使用。

这就是我想要做的:

    public static Func<float> GetFunction(Functions functions)
    {
        switch (functions)
        {
            case Functions.Linear: return // how do i return the func here?
                break;
            default: return null;
        }
    }

    public static float Linear(float k) // am trying to return this
    {
        return k;
    }

然后我的想法是我将能够做类似的事情:

Func<float> func = GetFunction(Functions.Linear);
print func(10);

不过我不确定如何创建返回。

最佳答案

委托(delegate)给 float Linear(float k) ,一个接受 float 的函数论证并有一个float返回值,通用 Func<float, float>必须使用委托(delegate)代替 Func<float> , 它封装了一个不带参数并返回 float 的函数.如:

public static Func<float, float> GetFunction(Functions functions)
{
    switch (functions)
    {
        case Functions.Linear: return Linear;
            break;
        default: return null;
    }
}

public static float Linear(float k) // am trying to return this
{
    return k;
}

关于c# - 如何使用 Func<> 返回方法的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164715/

相关文章:

c# - 我可以在 Open XML SDK 生成的电子表格上设置自动宽度而不计算单独的宽度吗?

c# - 始终分两部分接收来自 ssl 套接字消息(c# 客户端、python3 服务器)

c# - 获取主板传感器数据

c# - 将 Java 库导入 C#

c# - 嵌套最小起订量验证

c# - 多列表与单列表 Linq 查询比较

c# - MVC - 从枚举中排除

c# - 包中不存在指定部件

c# - 方法名称会被编译到 EXE 中吗?

c# - 没有数据时强制 XDocument.ToString() 包含结束标记