我正在做一个项目,它将利用nCalc来处理一些计算。这些计算还将包含一些函数。例如: sum(),avg()等。非常类似于Excel函数: sum()将对括号中提供的所有数字求和,avg将求平均值。
我已经开始实现一些更改,但我甚至不确定我是否从正确的地方开始。但是如果我从正确的地方开始,那么我需要做的就是访问参数,以便我可以迭代和总结它们。
到目前为止,我已经在EvaluationVisitor.cs中创建了一个新案例,如下所示:
case "sum":
CheckCase("sum", function.Identifier.Name);
if (function.Expressions.Length != 3) {
throw new ArgumentException("sum() takes exactly 3 arguments");
}
string sum = "";
for (int i = 1; i < function.Expressions.Length; i++)
{
//here comes the logic for getting all parameters and summing them.
//one thing I am not sure about is how to access input parameters
sum = ...;
}
Result = sum;
break;我对C#和nCalc都是新手,如果能给我一些帮助,我将不胜感激。
提前感谢!
发布于 2015-01-30 17:45:28
请试一试。将此代码添加到EvaluationVisitor.cs中的新开关用例("sum"):
case "sum" :
CheckCase("Sum", function.Identifier.Name);
object[] inputs = new object[function.Expressions.Length];
for (var i = 0; i < function.Expressions.Length; i++)
{
inputs[i] = Evaluate(function.Expressions[i]);
}
Result = Numbers.Sum(inputs);
break;Numbers.cs文件中的新方法:
public static object Sum(params object[] inputs)
{
var sum = inputs[0];
for (int i = 1; i < inputs.Length; i++)
{
sum = Add(sum,inputs[i]);
}
return sum;
}https://stackoverflow.com/questions/25890154
复制相似问题