WebForm中c#中如何将字符串声明为一个变量或控件名
请教各位:我现在得到一个字符串,如"y1",我想把y1声明为一个数组或一个控件,请问该如何做?简单的说就是想实现下述类似功能:int[](“y”+"1")=newint[...
请教各位:
我现在得到一个字符串,如"y1",我想把y1声明为一个数组或一个控件,请问该如何做?
简单的说就是想实现下述类似功能:
int [] (“y”+"1")=new int[0]; 展开
我现在得到一个字符串,如"y1",我想把y1声明为一个数组或一个控件,请问该如何做?
简单的说就是想实现下述类似功能:
int [] (“y”+"1")=new int[0]; 展开
4个回答
展开全部
先说说你这样做的目的是什么,如果你只是想从y1这个字符中来得到一个数组或者控件,有很多种方法,比如说
Dictionary<string,int[]> dic=new Dictionary<string,int[]>();
int[] arr=new int[10];
dic.Add("y1",arr);
之后你就可以用dic["y1"]来取得这个数组,当然也可以直接用诸如dic["y1"][2]来访问数组中的元素
Dictionary<string,int[]> dic=new Dictionary<string,int[]>();
int[] arr=new int[10];
dic.Add("y1",arr);
之后你就可以用dic["y1"]来取得这个数组,当然也可以直接用诸如dic["y1"][2]来访问数组中的元素
追问
为什么总提示“dic为字段,但在此处被当作类型来使用”?谢谢
追答
你多半是把代码放错地方了,上面的代码要放在某个方法中(比如某个按钮单击事件中)
展开全部
作为控件简单,就将控件的名称命名为Y1,查找:this.FindControl("Y1");
追问
请问具体该怎么写呢,新手一个,可不可以就以“y”+"1"这个字符串声明为int数组为例帮我演示一下。
追答
。。。按照你说的是有点麻烦。。。
1、 如果你的Y1,Y2这种变量不是很多,就先定义好,就不用去声明了。
查找变量就使用反射;
例:
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();
}
}
2、 或者使用控件,可以动态生成控件,名称命名为Y1 、Y2...
查找控件就使用FindControl("Y1");方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您可以定义一个带key值的数据结构 通过key值来调用您的数组或控件
private void Form1_Load(object sender, EventArgs e)
{
Dictionary<string,IntArray> dic =new Dictionary<string,IntArray>();
dic.Add("y1", new IntArray());
int[] yourintArray=dic["y1"].intArray;
}
//
public class IntArray
{
public int[] intArray { get; set; }
public IntArray()
{
intArray=new int[2];
}
}
private void Form1_Load(object sender, EventArgs e)
{
Dictionary<string,IntArray> dic =new Dictionary<string,IntArray>();
dic.Add("y1", new IntArray());
int[] yourintArray=dic["y1"].intArray;
}
//
public class IntArray
{
public int[] intArray { get; set; }
public IntArray()
{
intArray=new int[2];
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要用到反射
或者使用findcontrol这样的方法
或者使用findcontrol这样的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询