日期:2014-05-18  浏览次数:21289 次

C#如何动态的改变变量名
就是比如:有7个变量:num1,num2,num3,num4,num5,num6,num7 我现在想获取他们的值 然后我定义了:int i=0; string num[i] zhi.text=num[i] 这样就可以通过改变i的值来改变“num[i]”的值的 我现在就是不知道怎样去定义像num[i]这样的变量的
有什么办法可以实现这样的一种效果不:谢谢

------解决方案--------------------
Dictionary<string, object> dicVar = new Dictionary<string, object>();
object num1 = 5;
dicVar.Add("num1", num1);
object obj = dicVar["num" + 1];
Console.WriteLine(obj);
Console.Read();
感觉很怪,但客户的需求必须满足嘛
下面这个是反射的,我也是刚刚学会,话说世间两大神:百度,谷歌
namespace csdn测试
{
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();
}
}
}