日期:2014-05-17  浏览次数:20491 次

.net 将一个字符串和一个数字连成一个字符串,作为变量名,并赋值
如:
前台定义了id1,id2,id3..........
后台给id1,id2.....赋值:
for(i=0;i<100;i++)
{
  id+i=i;//把id+i作为变量名
}
要做成这样的效果
请赐教,谢谢

------解决方案--------------------
用反射
http://www.cnblogs.com/zgqys1980/archive/2010/08/19/1803794.html
------解决方案--------------------
探讨

用反射
http://www.cnblogs.com/zgqys1980/archive/2010/08/19/1803794.html

------解决方案--------------------
直接定义成数组不就ok了?
------解决方案--------------------
终极答案:

Dictionary<string, int> dict = new () ...;

for(i=0;i<100;i++)
{
dict["id"+i]=i;//把id+i作为变量名
}


------解决方案--------------------
还用反射,反射能动态改变程序集的结构?

人家楼主说的是根据传过来的值作为一个标示存储值。
------解决方案--------------------
不能 StringBuilder?
------解决方案--------------------
public int id1, id2, id3=0;
protected void Page_Load(object sender, EventArgs e)
{


for (int i = 1; i < 3; i++)
{
var obj = this.GetType().GetField("id" + i);
obj.SetValue(this, i);

}

}

声明变量一定要是全局变量在类下面不能在方法内