gpt4 book ai didi

c# - 将两个 lambda 与表达式相乘

转载 作者:行者123 更新时间:2023-11-30 15:20:05 27 4
gpt4 key购买 nike

基本上,我试图将两个 lambda 与 Expression 类相乘,但我什至无法构建,也找不到相关文档。这是我的代码:

var f = x=>x+2;
var g = x=>x+3;
var argX = Expression.Parameter(typeof(double), "x");
var fg = Expression.Multiply(Expression.Constant(g, typeof(Func<double, double>)), Expression.Constant(f, typeof(Func<double, double>)));
//var fg = Expression.Multiply(Expression.Constant(g),Expression.Constant(f));
var lambda = Expression.Lambda<Func<double, double>>(f3, argX);
return lambda.Compile();

最佳答案

你想要这样的东西吗:

Expression<Func<double,double>> f = x => x + 2;
Expression<Func<double,double>> g = x => x + 3;

var param = Expression.Parameter(typeof(double));
var invokeF = Expression.Invoke(f, param);
var invokeG = Expression.Invoke(g, param);

var mult = Expression.Multiply(invokeF,invokeG);

var lambda = ((Expression<Func<double, double>>)Expression.Lambda(mult, param)).Compile();

如果我这样调用它:

lambda(3);

我得到 30 个有效答案。

关于c# - 将两个 lambda 与表达式相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021599/

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