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

推荐订阅源

WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Visual Studio Blog
宝玉的分享
宝玉的分享
IT之家
IT之家
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
I
InfoQ
B
Blog RSS Feed
T
Threatpost
博客园_首页
M
MIT News - Artificial intelligence
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Know Your Adversary
Know Your Adversary
U
Unit 42
Engineering at Meta
Engineering at Meta
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
Scott Helme
Scott Helme
T
Tor Project blog
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
S
Schneier on Security
Vercel News
Vercel News
博客园 - Franky
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
L
LangChain Blog
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
S
Security Affairs
A
About on SuperTechFans
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
大猫的无限游戏
大猫的无限游戏
W
WeLiveSecurity
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客

博客园 - 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)  评论()    收藏  举报