WebForm中c#中如何将字符串声明为一个变量或控件名

请教各位:我现在得到一个字符串,如"y1",我想把y1声明为一个数组或一个控件,请问该如何做?简单的说就是想实现下述类似功能:int[](“y”+"1")=newint[... 请教各位:
我现在得到一个字符串,如"y1",我想把y1声明为一个数组或一个控件,请问该如何做?
简单的说就是想实现下述类似功能:

int [] (“y”+"1")=new int[0];
展开
 我来答
syht2000
高粉答主

推荐于2016-05-04 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
先说说你这样做的目的是什么,如果你只是想从y1这个字符中来得到一个数组或者控件,有很多种方法,比如说
Dictionary<string,int[]> dic=new Dictionary<string,int[]>();
int[] arr=new int[10];
dic.Add("y1",arr);

之后你就可以用dic["y1"]来取得这个数组,当然也可以直接用诸如dic["y1"][2]来访问数组中的元素
追问
为什么总提示“dic为字段,但在此处被当作类型来使用”?谢谢
追答
你多半是把代码放错地方了,上面的代码要放在某个方法中(比如某个按钮单击事件中)
sxhgga
2014-07-15 · TA获得超过687个赞
知道小有建树答主
回答量:1019
采纳率:74%
帮助的人:638万
展开全部
作为控件简单,就将控件的名称命名为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");方法。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouyu01
2014-07-15 · 超过34用户采纳过TA的回答
知道答主
回答量:109
采纳率:92%
帮助的人:46.8万
展开全部
您可以定义一个带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];
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友895f5d6
2014-07-15 · TA获得超过367个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:281万
展开全部
需要用到反射
或者使用findcontrol这样的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式