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]"