文档章节

c#字符串中包含的运算符按正常计算 例如按四则运算等,类似公式计算,很好很强大

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 163
阅读 5
收藏 0
/// <summary>
    /// 将字符串中的运算符按正常计算 例如按四则运算
    /// </summary>
    /// <param name="expression">标准表达式如 1+15*0.5-200</param>
    /// <returns>返回计算的值,可以为任意合法的数据类型</returns>
    protected static object MathCalculate(string expression)
    {
        object retvar = null;
        Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
        System.CodeDom.Compiler.CompilerParameters cp = new System.CodeDom.Compiler.CompilerParameters(
        new string[] { @"System.dll" });
        StringBuilder builder = new StringBuilder("using System;class CalcExp{public static object Calc(){ return \"expression\";}}");
        builder.Replace("\"expression\"", expression);
        string code = builder.ToString();
        System.CodeDom.Compiler.CompilerResults results;
        results = provider.CompileAssemblyFromSource(cp, new string[] { code });
        if (results.Errors.HasErrors)
        {
            retvar = null;
        }
        else
        {
            System.Reflection.Assembly a = results.CompiledAssembly;
            Type t = a.GetType("CalcExp");
            retvar = t.InvokeMember("Calc", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.InvokeMethod
                , System.Type.DefaultBinder, null, null);
        }
        return retvar;
    }

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/8052834

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
Qt之加减乘除四则运算-支持负数

一、效果展示 如图1所示,是简单的四则运算测试效果,第一列为原始表达式,第二列为转换后的后缀表达式,冒号后为结果。表达式支持负数和空格,图中是使用了5组测试数据,测试结果可能不全,...

朝十晚八
2018/07/23
0
0
C#表达式,类型和变量

本节课将介绍C# 语言的表达式,类型和变量。本节课要达到如下几个目的: 1.了解什么是"变量" 2.学习C#的简单类型 3.对C#表达式有个初步的了解 4.了解什么是String类型 5.学习如何使用数组 "变...

晨曦之光
2012/03/09
260
0
phoenixor/rpn.js

rpn.js 功能概述 数学运算表达式分3种: 1.前缀表达式(波兰式Prefix Expression):运算符在操作数之前。 2.中缀表达式(Infix Expression):一种通用的算术或逻辑公式表示方法,操作符以中...

phoenixor
2018/04/01
0
0
Java--Big Number操作(BigInteger类和BigDecimal类)

BigInteger类 java.math.BigInteger 类的使用场景是大整数操作。它提供类似所有Java的基本整数运算符和java.lang.Math中的所有相关的方法的操作,如+、-、、/、%、&、|、mod、>>、<<,以及m...

akane_oimo
2018/09/16
0
0
《Python从小白到大牛》第7章 运算符

本章为大家介绍Python语言中一些主要的运算符(也称操作符),包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 算术运算符 Python中的算术运算符用来组织整型和浮点型数据的...

tony关东升
2018/07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
8分钟前
0
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
15分钟前
1
0
阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?

面试,如同玩一场饥饿游戏:既要对环境了然于胸,又要对自身心知肚明。发现一个好工作不容易,但成功应聘又会面临一系列的挑战。 为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别...

阿里云云栖社区
26分钟前
2
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
27分钟前
0
0
CentOS7中ESL服务部署记录

在CentOS7上部署价签系统,需要安装Mysql,Redis,emqtt,jdk。 1)Mysql,参考 2)Redis,参考 3)emqtt,参考 4)jdk,参考 在jdk的下载地址中,下载rpm文件,通过ftp上传到虚拟机后,通过...

莫在全
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部