gpt4 book ai didi

c# - 如何向 Ncalc 添加新函数

转载 作者:行者123 更新时间:2023-11-30 19:27:21 25 4
gpt4 key购买 nike

我在我的新项目中使用 Ncalc,它几乎已经具备了我需要的一切。

我几乎都说了,因为现在我需要扩展一些功能,还要添加新的功能,例如:nth root,random 等

您知道是否有人已经实现了这些功能?或者你能给我任何提示或指南来扩展 Ncalc 的功能列表吗???

提前致谢。

最佳答案

如果我没理解错的话:

我使用它的方式主要是创建一个静态函数

private static void NCalcExtensionFunctions(string name, FunctionArgs functionArgs)
{
if (name == "yourfunctionname")
{
var param1 = functionArgs.Parameters[0].Evaluate();
var param2 = functionArgs.Parameters[1].Evaluate();
//... as many params as you require
functionArgs.Result = (int)param1 * (int)param2; //do your own function logic here
}
if (name == "random")
{
if(functionArgs.Parameters.Count() == 0)
{
functionArgs.Result = new Random().Next();
}
else if(functionArgs.Parameters.Count() == 1)
{
functionArgs.Result = new Random().Next((int)functionArgs.Parameters[0].Evaluate());
}
else
{
functionArgs.Result = new Random().Next((int)functionArgs.Parameters[0].Evaluate(), (int)functionArgs.Parameters[1].Evaluate());
}
}
}

然后你按如下方式使用它

var expr = new Expression("yourfunctionname(3, 2)");
expr.EvaluateFunction += NCalcExtensionFunctions;
var result = expr.Evaluate();

var randExpr = new Expression("random(100)");
randExpr.EvaluateFunction += NCalcExtensionFunctions;
var resultRand = randExpr.Evaluate();

希望我没有输错任何代码。可在此处找到 NCalc 内置函数列表:http://ncalc.codeplex.com/wikipage?title=functions&referringTitle=Home

关于c# - 如何向 Ncalc 添加新函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875348/

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