请问如何动态获得变量的值?
有如下变量:title_1,title_2,title_3....title_n请问我如何循环得到变量的值:
for (int i=0; i<=n ;i++)
{
Response.Write("<script>alert('" + title_i.ToString() + "!');</script>");
}
谢谢? --------------------编程问答-------------------- " + title_ + i.ToString() + "!');</script>") --------------------编程问答--------------------
string title=string.Empty;
title="title_"+i.ToString();
Response.Write("<script>alert('" + title + "!');</script>"); --------------------编程问答-------------------- 楼主 莫非真的 是 新手?
欢迎新人哈! --------------------编程问答-------------------- 总结
for (int i=0; i<=n ;i++)
{
string title=string.Empty;
title="title_"+i.ToString();
Response.Write("<script>alert('" + title + "!');</script>");
} --------------------编程问答-------------------- 二楼理解错了
比如:title_1=“111”,title_2=“222”,title_3=“333”....title_n=“nnn"
我希望能够通过for循环得到title_i这个变量所对应的值
for (int i=0; i<=n ;i++)
{
Response.Write("<script>alert('" + title_i.ToString() + "!');</script>");
}
我希望能够得到111,222,333....nnn这样的值
按二楼的做法只能得到
title_1,title_2,title_3...title_n这样的字符串。
--------------------编程问答-------------------- 如果n不大,可以这样:
string[] titles = new string[]{title_1, title_2, title_3};
foreach(string title in titles)
{
Response.Write(...);
}
如果n比较大,那你可以考虑直接用一个数组来定义title们,毕竟一个一个声明也很累人。 --------------------编程问答-------------------- 感觉楼主的意思应该是 “字符串当成变量名使用” 真正想要输出的是title_1里面的值~~
--------------------编程问答--------------------
1 BindingFlags bf = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static;
2 Type type = this.GetType();
3 FieldInfo fi = type.GetField("变量名的字符串", bf);
4 string sql = fi.GetValue(this).ToString();
+1
其实就是用到了反射,来动态获取变量值为变量的变量值。
好绕口啊! --------------------编程问答--------------------
BindingFlags bf = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static;
Type type = this.GetType();
FieldInfo fi;
for (int counti = 1; counti <= n; counti++)
{
fi = type.GetField("title_"+counti.ToString().Trim(), bf);
title = fi.GetValue(this).ToString();
Response.Write("<script>alert('" + title.ToString() + "!');</script>");
}
为何执行到title = fi.GetValue(this).ToString();
提示错误:未将对象引用设置到对象的实例
谢谢 --------------------编程问答-------------------- 请高手解惑呀 --------------------编程问答-------------------- C#中变量名就是一个存储了一个在缓存中的地址信息,你不可能通过一个与变量名一样的字符串就读到一样的地址信息,进而读取到这个缓存地址下的值。
最好还是把这样变量在读的时候就放到一个数组里然后做处理。 --------------------编程问答-------------------- class Program
{
public int num1 = 1;
public int num2 = 2;
public int num3 = 3;
static void Main(string[] args)
{
Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Type type = assembly.GetType("csdn测试.Program");
object obj = Activator.CreateInstance(type, true);
FieldInfo classField = type.GetField("num"+1);
Console.WriteLine("num"+1+":" + classField.GetValue(obj).ToString());
Console.Read();
}
} --------------------编程问答--------------------
public string title_1 = "111";
public string title_2 = "222";
public string title_3 = "333";
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 3; i++)
{
Response.Write("<script>alert('" +this.GetType().GetField("title_"+i).GetValue(this).ToString() + "!');</script>");
}
} --------------------编程问答-------------------- <script>
var title_0='111',title_1='2222',title_2='3333';
for(var i=0;i<3;i++){
alert(eval("title_"+i)+"!");
}
</script>
补充:.NET技术 , C#