在 C# 中将简单的算术表达式作为方法的参数传递
本文关键字:表达式 参数传递 方法 简单 | 更新日期: 2023-09-27 18:30:34
我有学校作业需要解决,但我不知道该怎么做。我需要创建方法计算(在类示例中)
例.计算(5+10);
此方法接收两个数字的算术表达式(NOT 字符串)并计算其值。是否可以在 C# 中将参数作为表达式传递以及如何实现?
是的,你可以像这样使用表达式树:
public class Example
{
public static int Calculate(Expression<Func<int>> expr)
{
return expr.Compile()();
}
}
void Main()
{
var mult = Example.Calculate(() => 4 * 3); //returns 12
var add = Example.Calculate(() => 4 + 3); // returns 7
}
但在这种情况下,您不妨跳过表达式树,只使用 lambda:
public static int Calculate(Func<int> expr)
{
return expr();
}
你可以简单地用一个小技巧来做到这一点:
public class Example
{
public static T Calculate<T>(T calculation)
{
return calculation;
}
}
var val1 = Example.Calculate(5+10);
var val2 = Example.Calculate(5*10);