站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题给出一个表达式以及表达式里面所有变量的值。求出这个表达式的值。类似javascript中的Eval().

给出一个表达式以及表达式里面所有变量的值。求出这个表达式的值。类似javascript中的Eval().

摘要: 给出一个表达式以及表达式里面所有变量的值。求出这个表达式的值。类似javascript中的Eval().
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible">

给出一个表达式以及表达式里面所有变量的值。求出这个表达式的值。类似javascript中的Eval().

作者:timmy3310

google_ad_client = "pub-0523096416305353"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as_rimg"; google_cpa_choice = "CAAQycb8zwEaCNrmdvgKt1bFKJnA93M"; // <iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/cpa/ads?client=ca-pub-0523096416305353&cpa_choice=CAAQycb8zwEaCNrmdvgKt1bFKJnA93M&dt=1135325720770&lmt=1135325720&format=468x60_as_rimg&output=html&url=http%3A%2F%2Fwww.faq-it.org%2Farchives%2Fcsharp%2F831bd1a95c55c31d2e26441cd324bd6b.php&region=_google_cpa_region_&cc=100&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=11&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="65535"></iframe>


Runtime C# Expression Evaluator
http://www.codeproject.com/csharp/runtime_eval.asp
---------------------------------------------------------------

http://expert.csdn.net/Expert/topic/1553/1553098.xml?temp=.1884882

请参考

这个帖子里面有我写的一个表达式解析类


---------------------------------------------------------------

using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
using System.Reflection;
using System.Text;

namespace TestApp
{
public class Test
{
public static void Main()
{
string expression = "125.8 + 208.2 + 120.90";
string ret = Eval.Calc(expression).ToString();
Console.Write("{0} = {1} ",expression, ret);
}
}

public class Eval
{
public static object Calc(string expression)
{
string className = "Calc";
string methodName = "Run";

// 创建编译器实例。
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("}");

System.Diagnostics.Debug.WriteLine(classSource.ToString());

// 编译代码。
CompilerResults result = complier.CompileAssemblyFromSource(paras, classSource.ToString());

// 获取编译后的程序集。
Assembly assembly = result.CompiledAssembly;

// 动态调用方法。
object eval = assembly.CreateInstance(className);
MethodInfo method = eval.GetType().GetMethod(methodName);
return method.Invoke(eval, null);
}
}
}


</textarea>
↑返回目录
前一篇: javascript验证给定的日期的合法性
后一篇: 几个常用的Javascript函数