惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

博客园 - chinaprg

干不下去了,准备出售公司了,有想要接手的吗 如何在3周让你的工资从5000+变10000+ 时隔6年后,我又回到博客园了 delphi关于小数位精度的问题 TExcelApplication,TExcelWorksheet,TExcelWorkbook用法 在客户处实施时几条常用运行命令备忘 堕落于游戏中的朋友可以看看了,打游戏偶尔还能搞点零花钱 路在何方 在b/s开发中经常用到的javaScript技术 C#中对注册表的操作 用C#实现生成PDF文档 C#在客戶端和服務端操作Excel文件 - chinaprg - 博客园 用C# 实现C/S模式下软件自动在线升级[转载,原作者:貓撲] 关于C#下写的Web Service 服务在Delphi下调用时的问题 用C#快速往Excel写数据 - chinaprg - 博客园 asp.net中Dbgrid更新和取消 命令同时出现的操作DEMO说明 - chinaprg - 博客园 常用javascript 常用javascript 网上看到的一篇颇有感触的文章,特意推荐给大家看看!
c# 公式计算问题 转帖(http://topic.csdn.net/t/20060313/11/4610686.html)
chinaprg · 2007-02-24 · via 博客园 - chinaprg

 using   System;  
  using   System.CodeDom.Compiler;  
  using   System.Reflection;  
  using   System.Text;  
  using   Microsoft.CSharp;  
   
  namespace   Expression  
  {  
          ///   <summary>  
          ///   计算表达式的类  
          ///   </summary>  
          public   class   CalculateExpression  
          {  
                  ///   <summary>  
                  ///   接受一个string类型的表达式并计算结果,返回一个object对象,静态方法  
                  ///   </summary>  
                  ///   <param   name="expression"></param>  
                  ///   <returns></returns>  
                  public   static   object   Calculate(string   expression)  
                  {  
                          string   className   =   "Calc";  
                          string   methodName   =   "Run";  
                          expression   =   expression.Replace("/",   "*1.0/");  
   
                          //   创建编译器实例。    
                          ICodeCompiler   complier   =   (new   CSharpCodeProvider().CreateCompiler());  
   
                          //   设置编译参数。    
                          CompilerParameters   paras   =   new   CompilerParameters();  
                          paras.GenerateExecutable   =   false;  
                          paras.GenerateInMemory   =   true;  
   
                          //   创建动态代码。    
                          StringBuilder   classSource   =   new   StringBuilder();  
                          classSource.Append("public   class   "   +   className   +   "\n");  
                          classSource.Append("{\n");  
                          classSource.Append("         public   object   "   +   methodName   +   "()\n");  
                          classSource.Append("         {\n");  
                          classSource.Append("                 return   "   +   expression   +   ";\n");  
                          classSource.Append("         }\n");  
                          classSource.Append("}");  
   
                          //   编译代码。    
                          CompilerResults   result   =   complier.CompileAssemblyFromSource(paras,   classSource.ToString());  
   
                          //   获取编译后的程序集。    
                          Assembly   assembly   =   result.CompiledAssembly;  
   
                          //   动态调用方法。    
                          object   eval   =   assembly.CreateInstance(className);  
                          MethodInfo   method   =   eval.GetType().GetMethod(methodName);  
                          object   reobj   =   method.Invoke(eval,   null);  
                          GC.Collect();  
                          return   reobj;  
                  }  
          }  
  }  

posted on 2007-02-24 10:49  chinaprg  阅读(1566)  评论()    收藏  举报