C#学习笔记——NCalc包中的运算表达式
2015-03-19 16:59
411 查看
比如有string
这是一个递归调用的过程,先解析出func和它的两个参数,然后再依次解析参数
比如其中一个参数 1+2+funcB(), 那么funcB返回的一定是个可以参与加号运算的object,否则会报错。
if (name.Equals("funcB"))<pre name="code" class="csharp"><span style="white-space:pre"> </span>args.Result = 12;
using NCalc; string ToCalc= "func(funcA(), 1+2+funcB())" Expression exp = new Expression(); exp.EvaluateFunction += delegate(string name, FunctionArgs args) { if (name.Equals("funcA")) { args.Result = ...; } else if (name.Equals("funcB")) { args.Result = ...; } else if (name.Equals("func") || name.Equals("douzhijifa") || name.Equals("huadong")) { args.Result = true; } }; exp.Evaluate();调用代码基本是这样
这是一个递归调用的过程,先解析出func和它的两个参数,然后再依次解析参数
比如其中一个参数 1+2+funcB(), 那么funcB返回的一定是个可以参与加号运算的object,否则会报错。
if (name.Equals("funcB"))<pre name="code" class="csharp"><span style="white-space:pre"> </span>args.Result = 12;
相关文章推荐
- C#正则表达式学习笔记
- C#特性 学习笔记(Lambda表达式 迭代)
- C# in Depth Third Edition 学习笔记-- Lambda表达式和表达式树
- C#学习之路,学习笔记 第三章 运算符和表达式(运算符、优先级、类型转换)
- 学习笔记之在 LINQ 外部使用 Lambda 表达式(C# 编程指南)
- C# 代理 λ表达式和事件(学习笔记)
- C#学习笔记1:正则表达式和数据库连接
- C#学习笔记(二)——变量和表达式
- C#学习笔记二:并行编程基础:在 PLINQ 和 TPL 中的 Lambda 表达式
- C#学习笔记-----C#枚举中的位运算权限分配
- 大马哈鱼的C#学习笔记(1):lambda表达式
- C#正则表达式学习笔记
- C# 正则表达式学习笔记(二)
- 学习笔记之Lambda 表达式(C# 编程指南)
- 关于c#.net 正则表达式 学习笔记
- C#学习笔记 - Lambda表达式
- 黑马程序员之C#学习笔记: Lambda表达式学习总结
- C# Lambda表达式学习笔记
- 学习笔记之在查询中使用 Lambda 表达式(C# 编程指南)