c#如何解释执行一段字符串
s字符串本身就是一段代码像这样strings="inti=0;intj=5;Console.WriteLine(i+j);"如何把这个s解释执行呢...
s字符串本身就是一段代码
像这样
string s ="int i=0;int j=5;Console.WriteLine(i+j);"
如何把这个s解释执行呢 展开
像这样
string s ="int i=0;int j=5;Console.WriteLine(i+j);"
如何把这个s解释执行呢 展开
2013-05-25
展开全部
代码如下,如果s用到其它命名空间或者需要返回值之类的自行做相应修改:
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Text;
namespace Execute
{
class Program
{
static void Main(string[] args)
{
string s = "int i=0;int j=5;Console.WriteLine(i+j);";
Execute(s);
Console.ReadKey();
}
static void Execute(String code)
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
CompilerResults results = provider.CompileAssemblyFromSource(parameters, BuildCode(code));
MethodInfo methodInfo = results.CompiledAssembly.GetType("C").GetMethod("T");
methodInfo.Invoke(null, null);
}
static String BuildCode(String code)
{
StringBuilder builder = new StringBuilder();
builder.Append("using System;");
builder.Append("public class C{ public static void T(){");
builder.Append(code);
builder.Append("}}");
return builder.ToString();
}
}
}
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询