.NET 表達式計算:Expression Evaluator

Expression Evaluator 是一個輕量級的能夠在運行時解析C#表達式的開源免費組件。表達式求值應該在不少地方使用,例如一些工資或者成本覈算系統,就須要在後臺動態配置計算表達式,從而進行計算求值。相比 NCal,仍是這個 Expression Evaluator 比較強大,雖然部分功能有重疊。也都能計算常規的數學表達式。lua

Expression Evaluator 支持的特性有:索引

  • 支持算術運算符,支持關係運算符,以及邏輯運算符字符串

  • 支持表達式分組和括號,以及遞增遞減運算符get

  • 支持表達式屬性訪問以及動態類型,支持字符串的+運算數學

  • 支持數值類型的後綴d/f/m/l/u/ul、string

  • 支持隱式表達式,以及成員訪問操做符(.)io

  • 支持一些默認的類型,如double, float, char, string, DateTime, Convert, Mathclass

  • 支持foreach循環後臺

  • 。。。等等,更多功能還期待你的使用和發現配置

簡單的數值表達式就不演示了,看一個比較有新意的代碼:

class MyClass
{
     public string[] myExternalString;
     public int x;
}
  
var v = new MyClass();
v.myExternalString = new string[] { "Hello", "there", "World!" };
v.x = 2;
//關鍵點,註冊符號v
registry.RegisterSymbol("v", v);
//動態計算屬性
//返回結果是"there",由於v.x=2,2/2=1,因此返回索引1的值
"v.myExternalString[v.x/2]"

 

項目主頁:http://www.open-open.com/lib/view/home/1435843266122

相關文章
相關標籤/搜索