【原創】.NET開源表達式計算組件介紹與使用


       本博客所有文章分類的總目錄:http://www.cnblogs.com/asxinyu/p/4288836.html

本博客其他.NET開源項目文章目錄:http://www.cnblogs.com/asxinyu/p/4329755.html

1.前言

日常開發中有很多地方使用到表達式計算,比如一個龐大靈活的人力資源管理系統中,涉及到薪酬管理,某些單位可能會經常對工資格式,計算方式進行變動,這個時候表達式計算就可以派上用場,當然還有很多地方,比如數學計算等環節中,對表達式計算的需求也挺多的。今天就像大家介紹一款開源的.NET表達式計算組件NCalc,該組件很小,但功能強大,包括了很多不同類型的表達式計算,下面就將詳細介紹其功能和使用。

2.NCalc組件功能特點

首先,這款組件是開源的,開源地址在:http://ncalc.codeplex.com/ ,可以下載Dll和源代碼,看看實現過程。

其次,該組件不僅支持數學表達式計算,還支持很多基礎的數學函數,支持參數,以及支持邏輯運算符號。使用簡單。

3.NCalc組件基本使用入門

NCalc的使用很簡單,只需要初始化一個Expression對象,然后給它傳入參數,調用Evaluate方法即可得到結果。下面將對NCalc支持的各種表達式計算進行一個簡單的演示,包括一下內容:

1.最簡單的數學運算

2.簡單的邏輯運算

3.簡單的參數表達式計算

4.支持數學函數運算

先看效果圖:

  

再看核心代碼:

 1 string[] temp = txtExpress.Text.Trim().Split(new String[] { "\r\n" }, 
 2     StringSplitOptions.RemoveEmptyEntries);
 3 foreach (var item in temp )
 4 {
 5     //對當前的表達式再次進行分割,若有參數,則添加參數
 6     if (item.Contains(';'))
 7     {   //第一個是表達式,后面的;號都是參數名稱和參數值
 8         string[] param = item.Split (new char[]{';'}, 
 9                    StringSplitOptions.RemoveEmptyEntries);
10         Expression exp = new Expression(param[0]);
11         //添加參數
12         for (int i = 1; i < param.Length ; i++)
13         {
14             //等號左邊是參數名,等號右邊是值,輸入錯誤檢測暫時不處理
15             string[] nameValue = param[i ].Split ('=');
16             //這里注意要對值類型進行轉換,否則會直接作為字符串對待,結果會有不同
17             exp.Parameters[nameValue[0]] = Convert.ToDouble( nameValue[1]);
18         }
19         //計算結果
20         txtResult.Text += (exp.Evaluate().ToString () + "\r\n");
21     }
22     else
23     {
24         string result = new Expression(item).Evaluate().ToString();
25         txtResult.Text += (result + "\r\n");
26     }
27 }

4.資源

自由發揮,有了這個基礎的東西,可以做出很多小工具啊。希望對大家有用。還有更多的功能期待大家發掘。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM