如果将字符串的内容作为代码执行 例如:b="string a;";如何 通过执行变量b 从而达到程序自动定义变量a ??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 动态编译。例:获取字符串所表示的逻辑意义 /***************************************************************** ** 文件名: Eval.cs ** Copyright (c) 1999 -2003 ** 创建人: Phoenix ** 创建日期: ** 修改人: ** 修改日期: ** 描 述: 获取字符串所表示的逻辑意义 ** 版 本:1.0 ******************************************************************/ public class Eval { public static object GetValue(string value) { string codeSnippet = "using System; " + "\r\n" + "namespace CzG {" + "\r\n" + " public class Eval" + "\r\n" + " {" + "\r\n" + " public Eval(){} " + "\r\n" + " public object GetValue()" + "\r\n" + " {" + "\r\n" + " return " + value + ";" + "\r\n" + " }" + "\r\n" + " } }"; CodeSnippetCompileUnit unit = new CodeSnippetCompileUnit(codeSnippet); CodeDomProvider compiler=new CSharpCodeProvider() ; //ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler(); string[] referenceAssemblies={"System.dll"}; CompilerParameters para = new CompilerParameters(referenceAssemblies ,"Eval.dll",false ); //para.ReferencedAssemblies.Add("System.dll"); para.GenerateInMemory = true; para.GenerateExecutable = false; //para.OutputAssembly = "Eval.dll"; Assembly asm = compiler.CompileAssemblyFromDom(para, unit).CompiledAssembly; Type type = asm.GetType("CzG.Eval"); MethodInfo mi = type.GetMethod("GetValue", BindingFlags.Public | BindingFlags.Instance); object obj = asm.CreateInstance("CzG.Eval"); object ret = mi.Invoke(obj, null); return ret; } } 获取多个textbox值的问题 求高手:c#水晶报表如何指定打印机和纸张大小 请教用SqlDataReader获取表架构的问题 我样的控件怎么写 控件继承 如何实现一条输入框内输入"(4+5)*3+1"点击确认后输出答案 问个小问题,大神们指点一下 小虾紧急求教大虾们:求教能识别公式的类 怎么获得一个MDI子窗体的焦点 求助高手(急):如何用C#实现txt文本数据导入SqlServer? 如何获得打开的某个窗体是否处于激活状态? dataset.select()语句的问题
例:获取字符串所表示的逻辑意义 /*****************************************************************
** 文件名: Eval.cs
** Copyright (c) 1999 -2003
** 创建人: Phoenix
** 创建日期:
** 修改人:
** 修改日期:
** 描 述: 获取字符串所表示的逻辑意义
** 版 本:1.0
******************************************************************/
public class Eval
{
public static object GetValue(string value)
{
string codeSnippet = "using System; " + "\r\n" +
"namespace CzG {" + "\r\n" +
" public class Eval" + "\r\n" +
" {" + "\r\n" +
" public Eval(){} " + "\r\n" +
" public object GetValue()" + "\r\n" +
" {" + "\r\n" +
" return " + value + ";" + "\r\n" +
" }" + "\r\n" +
" } }";
CodeSnippetCompileUnit unit = new CodeSnippetCompileUnit(codeSnippet);
CodeDomProvider compiler=new CSharpCodeProvider() ;
//ICodeCompiler compiler = new CSharpCodeProvider().CreateCompiler();
string[] referenceAssemblies={"System.dll"};
CompilerParameters para = new CompilerParameters(referenceAssemblies ,"Eval.dll",false );
//para.ReferencedAssemblies.Add("System.dll");
para.GenerateInMemory = true;
para.GenerateExecutable = false;
//para.OutputAssembly = "Eval.dll"; Assembly asm = compiler.CompileAssemblyFromDom(para, unit).CompiledAssembly; Type type = asm.GetType("CzG.Eval");
MethodInfo mi = type.GetMethod("GetValue", BindingFlags.Public | BindingFlags.Instance); object obj = asm.CreateInstance("CzG.Eval");
object ret = mi.Invoke(obj, null);
return ret;
}
}