如何在c#中执行用字符串写成的命令?
如何在c#中执行用字符串写成的命令?
如:
string a1="int a2=5"
如何执行a1实现a2=5
问题点数:20、回复次数:11Top
1 楼soft_biao(巴不豆)回复于 2005-07-06 18:45:14 得分 0
没见过,帮你顶Top
2 楼dugupiaoyun(独孤飘云)回复于 2005-07-06 19:14:44 得分 0
用输出流试试Top
3 楼shinesunbj()回复于 2005-07-06 19:16:34 得分 0
为什么要这样写???Top
4 楼zhouyong2052(晴天)回复于 2005-07-06 19:24:54 得分 0
不可能,那是编译器的工作,除非你想写编译器Top
5 楼dugupiaoyun(独孤飘云)回复于 2005-07-06 19:45:09 得分 0
asp.net可以这样做,winform就不知道了Top
6 楼sswv(林健)回复于 2005-07-06 20:12:03 得分 0
有一个COM组件可以动态执行VB Script:Microsoft Script Control. 文件名是msScript.ocx,在system32下。你的使用目的是什么?表达式计算之类的小工作它完全可以。Top
7 楼claus2001(古风)回复于 2005-07-06 21:19:15 得分 0
markTop
8 楼alias88()回复于 2005-07-07 01:09:53 得分 0
查反射和动态编译Top
9 楼sunjian_qi(sonne)回复于 2005-07-07 01:12:26 得分 0
http://blog.sunmast.com/sunmast/archive/2004/08/24/870.aspxTop
10 楼eagle8eagle(鹰)回复于 2005-07-07 08:27:23 得分 0
感谢各位赐教,也许我的意思表达的不够明确,现详细叙述一下,比如我在一个web窗体中建立了n个label,id 分别为A1,A2,A3……An,现有一统计结果储存于数组s(n)中,需要用数组中的值来替换label控件的text属性用来显示在web窗体中,如果在c#中可以执行用字符串写成的命令,程序代码便可以这样写:
string bl
for (i=0;i<=n;++i)
{
bl="this.A" + i.tostring() + ".text=s(i).tostring()"
*** //***便是寻求的执行bl的命令
}
如此,一个循环便可以实现为所有label的text属性的替换。这条c#中执行用字符串写成的命令该如何写?Top
11 楼fangxinggood(JustACoder)回复于 2005-07-07 08:47:45 得分 20
你的需求可以用遍历HtmlForm上的Controls来完成啊,
不需要什么动态编译,执行代码的。
System.Web.UI.HtmlControls.HtmlForm htmlForm;
System.Web.UI.Control control;
System.Web.UI.WebControls webControl;
ArrayList labelCollections = new ArrayList();
foreach(control in this.Controls)
{
if( typeof(control) is System.Web.UI.HtmlControls.HtmlForm )
{
foreach(webControl in control.Controls)
{
if(typeof(webControl) is System.Web.UI.WebControls.Label)
{
labelCollections.Add(webControl);
}
}
}
}
for(int i=0; i<labelCollections.Count; i++)
{
((Label)labelCollections[i]).Text = s[i];
}Top




