如果能够类似于js里的eval一样把一个字符串转换成C#语句,就能够带来很多方便。
例如,String a="Console.writeLine(\"这是一个转换过后运行的语句。\")";
如果能够直接运行字符串a里的语句就好了。
不知道有没有这种现在的方法,谢谢大家。
例如,String a="Console.writeLine(\"这是一个转换过后运行的语句。\")";
如果能够直接运行字符串a里的语句就好了。
不知道有没有这种现在的方法,谢谢大家。
解决方案 »
- 如何获取DataGridView里面的数据条数?
- 编辑产品信息,为什么我指定一条编辑,却把数据库所有记录都编辑了?
- 大家好,关于点击“显示”变成“未显示”
- 如何重写控件的属性?
- 为什么string str="这是<script>脚本"; 输出时只显示“这是”?
- 找谝整个CSDN,却没有找到关于如何修改DataGridView单元格数据显示的文章!
- 菜鸟求助一个控件问题?
- 在c#中如何实现类似任务栏的QQ右键菜单。。。
- 水晶报表-根据DataSet动态生成报表字段.高手的请进。既时结贴
- 还是datagrid的问题
- 帮忙解决一下,正则表达式。
- axWebBrowser1.ContextMenuStrip?不好用
using System.CodeDom.Compiler;
using System.Reflection;private void button1_Click(object sender, EventArgs e)
{
ICodeCompiler vCodeCompiler = new CSharpCodeProvider().CreateCompiler();
CompilerParameters vCompilerParameters = new CompilerParameters();
vCompilerParameters.GenerateExecutable = false;
vCompilerParameters.GenerateInMemory = true;
string vSource =
"public class Temp\n" +
"{\n" +
" public double Test(double A, double B)\n" +
" {\n" +
" return A / B;\n" +
" }\n" +
"}\n";
CompilerResults vCompilerResults =
vCodeCompiler.CompileAssemblyFromSource(vCompilerParameters, vSource);
Assembly vAssembly = vCompilerResults.CompiledAssembly;
object vTemp = vAssembly.CreateInstance("Temp");
MethodInfo vTest = vTemp.GetType().GetMethod("Test");
for (int i = 1; i < 100; i++)
{
object[] vParams = { 1, i };
object vDouble = vTest.Invoke(vTemp, vParams);
textBox1.AppendText(vDouble.ToString() + "\r\n");
}
}