我想实现这么一个东西

业余写写代码 2009-03-10 03:24:26


代码很简单
StringBuilder strcode = new StringBuilder();
strcode.AppendLine("Text1 txt=new Text1()");//在strcode追加字符串

textBox1.Text = strcode.ToString();

我希望strcode追加的字符串“Text1 txt=new Text1()”,能在编译器里面执行。也就是说字符串能够在运行时被编译。
...全文
126 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu4545533 2009-03-10
  • 打赏
  • 举报
回复
加一个@符号就可以啦
StringBuilder strcode = new StringBuilder();
strcode.AppendLine(@"Text1 txt=new Text1()");//在strcode追加字符串

textBox1.Text = strcode.ToString();
liucuiqiang 2009-03-10
  • 打赏
  • 举报
回复
参考SharpDevelop吧
uncleson88 2009-03-10
  • 打赏
  • 举报
回复
好象VS自带了一个编译软件,是命令行形式的,应该可以用C#调用吧
dq512000 2009-03-10
  • 打赏
  • 举报
回复
了解下System.Codedom。。。。
天乐 2009-03-10
  • 打赏
  • 举报
回复
1、C#内置了编译器的使用类,在System.Codedom命名空间下,可以运行时把字符串当作源码编译

2、C#2.0中支持eval方法,可以把字符串当作源码执行,但相对较简单
zgke 2009-03-10
  • 打赏
  • 举报
回复
单独的一个 Text1 txt=new Text1(); 你只能分析出进行操作了.


如果是代码 你可以考虑使用
System.CodeDom.Compiler和Microsoft.CSharp

你可以参考下面
http://blog.csdn.net/zgke/archive/2009/03/04/3955490.aspx
tweeger 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 MeSharp 的回复:]
谢谢大家,我想用c#做一个解释器试试
[/Quote]
lz的勇气可嘉,不过解释器这个东西的复杂度相当高。
支持一下。
业余写写代码 2009-03-10
  • 打赏
  • 举报
回复
第一个能具体说一下吗
业余写写代码 2009-03-10
  • 打赏
  • 举报
回复
谢谢大家,我想用c#做一个解释器试试
cppfaq 2009-03-10
  • 打赏
  • 举报
回复
两个思路
1.解析字符串,利用反射动态创建对象
2.动态编译http://www.cnblogs.com/cxd4321/archive/2008/07/09/1239150.html
enihs 2009-03-10
  • 打赏
  • 举报
回复
Text1 txt=new Text1()中txt是个对象,所以你要实现的功能是不是可以这样实现,在Text1这个类中override一下ToString这个方法(这个方法里面就是你到底想把这个对象转化成什么样字符串的方法),然后:
strcode.AppendLine("Text1 txt=new Text1()");改为
Text1 txt=new Text1();
strcode.AppendLine(txt.ToString());

欧了。
Soloboy1020 2009-03-10
  • 打赏
  • 举报
回复
建议LZ研究下这个命名空间 system.codedom
业余写写代码 2009-03-10
  • 打赏
  • 举报
回复
Text1 txt=new Text1();

这句话因为是字符串所以编译器不会把他作为 c#语言执行。

我的目的是希望能把字符串里的东西执行。
tweeger 2009-03-10
  • 打赏
  • 举报
回复
也就是说字符串能够在运行时被编译?
什么意思?

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧