gpt4 book ai didi

c# - 创建一个函数,它给我们另一个函数

转载 作者:太空狗 更新时间:2023-10-29 22:56:36 25 4
gpt4 key购买 nike

作为我正在使用的另一个程序的输入,我需要输入以下形式的委托(delegate):

Func<double, double, double>.

我希望发送的函数是

F(a,b)=a+b*c+d

其中 cd 是运行时已知的常量。

所以我需要的是一些方法,它接受值 c 和 d,然后给我一个函数 F(a,b)。我认为我需要做的是首先创建方法:

double der(double a, double b, double c, double d)
{
return a + b * c + d;
}

通过这种方法,我必须对委托(delegate)做一些事情才能获得我的功能。你知道如何解决这个问题吗?

最佳答案

您需要将返回值定义为您期望的 Func:

Func<double, double, double> MakeFunction(double c, double d)

现在您可以使用 lambda 表达式来构造您想要的函数:

return (a,b) => a + b * c + d;

解释:

(a,b) 表示函数的输入参数。由于方法签名中的指定返回值指定这将是 2 个 double 类型的参数。 => 之后的部分表示将要执行的计算。

现在您可以通过以下方式使用它:

var myFunc = MakeFunction(3, 4);    
Console.WriteLine(myFunc(1, 2));

TEST Code:

double a = 1;
double b = 2;
double c = 3;
double d = 4;
var myFunc = MakeFunction(c, d);
Console.WriteLine("Func: " + myFunc(a, b));
Console.WriteLine("Direct test: "a + b * c + d);

OUTPUT:
Func: 11
Direct test: 11

关于c# - 创建一个函数,它给我们另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54906104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com