当前第2页 返回上一页
测试文件内容:
浏览按钮事件处理程序:
1 | <p style= "margin-bottom: 7px;" > private void button_browse_Click(<a href= "http://www.php.cn/wiki/60.html" target= "_blank" > object </a> s<a href= "http://www.php.cn/wiki/1048.html" target= "_blank" >end</a>er, EventArgs e)<br> {<br> Open<a href= "http://www.php.cn/wiki/1313.html" target= "_blank" >File</a>Dialog fbd = <a href= "http://www.php.cn/wiki/165.html" target= "_blank" > new </a> OpenFileDialog();<br> fbd.Title = "请选择一个文件:" ;<br> fbd.CheckFileExists = true ;<br> fbd.CheckPathExists = true ;<br> fbd.Filter = "*.txt(文本文件)|*.txt|*.*(所有文件)|*.*" ;<br> fbd.FileName = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);<br> <a href= "http://www.php.cn/wiki/109.html" target= "_blank" > if </a> (fbd.ShowDialog() == System.Windows.<a href= "http://www.php.cn/wiki/125.html" target= "_blank" >For</a>ms.DialogResult.OK)<br> {<br> textBox_save<a href= "http://www.php.cn/wiki/1275.html" target= "_blank" >Dir</a>.Text = fbd.FileName;<br> try <br> {<br> FileStream fs = new FileStream(fbd.FileName, FileMode.Open, FileAccess.Read);<br> StreamReader sr = new StreamReader(fs);<br> <a href= "http://www.php.cn/wiki/121.html" target= "_blank" > while </a> (!sr.EndOfStream)<br> {<br> <a href= "http://www.php.cn/wiki/57.html" target= "_blank" > string </a> line = sr.<a href= "http://www.php.cn/wiki/691.html" target= "_blank" >ReadLine</a>();<br> analyse(line);<br> }<br> }<br> catch (<a href= "http://www.php.cn/wiki/265.html" target= "_blank" >Exception</a> ex)<br> {<br> MessageBox.Show( "错误:" + ex.Message + "\r\n堆栈:" + ex.StackTrace);<br> }<br> }<br> }<br></p>
|
分析一行表达式:
1 2 3 4 5 6 7 8 9 | private void analyse( string line)
{
string [] expA = line.Split( new string [] { ";" }, StringSplitOptions.RemoveEmptyEntries);
for ( int i = 0; i < expA.Length; i++)
{
analyseExpA(expA[i]);
}
}
|
计算一条表达式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private void analyseExpA( string expA)
{
string [] expB = expA.Split( new string [] { "=" }, StringSplitOptions.RemoveEmptyEntries);
for ( int i = 0; i < expB.Length; i++ )
{
Regex reg = new Regex( "[a-zA-Z]" );
if (!reg.IsMatch(expB[i]))
{
object obj = EvalExpress(expB[i]);
if (obj != null )
{
textBox1.Text += expA + " = " + obj.ToString() + "\r\n" ;
}
else
{
textBox1.Text += expA + ",无法识别的表达式\r\n" ;
}
}
}
}
|
以上就是详细介绍C#数学运算表达式解释器的示例代码的详细内容!
返回前面的内容
相关阅读 >>
c#中var和dynamic之间的区别是什么?
什么是C#中的多态性?
详细介绍C#时间戳和js时间戳互转方法的代码分享
C#网络编程的图文代码详解
C#开发实例-订制屏幕截图工具(五)针对拖拽时闪烁卡顿的优化
C#将unicode编码转换为汉字字符串的代码分析
页面包含处理实例详解
C# 清除html标签标记
C#开发之微信小程序发送模板消息功能
详细介绍C#实例化接口对象的方法
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 详细介绍C#数学运算表达式解释器的示例代码