博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NCalc 学习笔记 (一)
阅读量:5909 次
发布时间:2019-06-19

本文共 1779 字,大约阅读时间需要 5 分钟。

简易使用说明

【子页链接】

-
-
-
-
-

简单表达式

Expression e = new Expression("2 + 3 * 5");Debug.Assert(17 == e.Evaluate());

计算 .NET 数据类型

Debug.Assert(123456 == new Expression("123456").Evaluate()); // integersDebug.Assert(new DateTime(2001, 01, 01) == new Expression("#01/01/2001#").Evaluate()); // date and timesDebug.Assert(123.456 == new Expression("123.456").Evaluate()); // floatinpoint numbersDebug.Assert(true == new Expression("true").Evaluate()); // booleansDebug.Assert("azerty" == new Expression("'azerty'").Evaluate()); // strings

处理 System.Math 所支持的函数

Debug.Assert(0 == new Expression("Sin(0)").Evaluate());Debug.Assert(2 == new Expression("Sqrt(4)").Evaluate());Debug.Assert(0 == new Expression("Tan(0)").Evaluate());

计算自定义函数

Expression e = new Expression("SecretOperation(3, 6)");e.EvaluateFunction += delegate(string name, FunctionArgs args)                      {                          if (name == "SecretOperation")                              args.Result = (int)args.Parameters[0].Evaluate() + (int)args.Parameters[1].Evaluate();                      };Debug.Assert(9 == e.Evaluate());

处理 Unicode 字符

Debug.Assert("唐衣可俊" == new Expression("'唐衣可俊'").Evaluate());Debug.Assert("Hello" == new Expression(@"'\u0048\u0065\u006C\u006C\u006F'"Evaluate());Debug.Assert("だ" == new Expression(@"'\u3060'").Evaluate());Debug.Assert("\u0100" == new Expression(@"'\u0100'").Evaluate());

定义参数

Expression e = new Expression("Round(Pow([Pi], 2) + Pow([Pi2], 2) + [X], 2)");e.Parameters["Pi2"] = new Expression("Pi * [Pi]");e.Parameters["X"] = 10;e.EvaluateParameter += delegate(string name, ParameterArgs args)                        {                          if (name == "Pi")                          args.Result = 3.14;                        };Debug.Assert(117.07 == e.Evaluate());

参考链接

转载地址:http://vztpx.baihongyu.com/

你可能感兴趣的文章
laravel/lumen 单元测试
查看>>
软件如何控制硬件
查看>>
AWK 快速入门
查看>>
Javascript自定义事件
查看>>
10-13C#语句(1)
查看>>
11-02SQLserver基础--字符串函数
查看>>
jQuery Wookmark
查看>>
Java学习笔记二:数据类型II
查看>>
Tracking your habits in Org-mode
查看>>
jquery图片轮播插件
查看>>
为elasticSearch开发c++接口
查看>>
同一件事(watch+scss) gulp和grunt速度的对比
查看>>
zabbix的配置使用
查看>>
csu2161: 漫漫上学路(Hash+最短路)
查看>>
jQuery监听键盘事件及相关操作使用教程
查看>>
使用js修改url地址参数
查看>>
在Notepad++中为Python配置编译环境
查看>>
操作系统知识点-3.进程原理(下):进程通信
查看>>
重复引用错误:duplicate symbols for architecture x86_64
查看>>
restricted 模式及其 使用
查看>>