原帖:http://topic.csdn.net/u/20100122/22/8c839767-a41d-423f-836d-147135f95aed.html?seed=1082236102&r=62943372#r_62943372推荐MSDN首页贴:
http://blog.csdn.net/vip__888/archive/2010/01/21/5221635.aspx本人疑问:
我把 被推荐贴 改如下:
public class Muliti
{
public Muliti()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
    public string[] test1;
    public object[] test2;
    public int[] test3;    public void setUpArray()
    {
        test1 = new string[3];
        test2 = new object[2];
        test3 = new int[4];
    }   
}protected void btnclick(object sender, EventArgs e)
    {
      Muliti mm = new Muliti();
      mm.setUpArray();
      mm.test1[0] = "test1-0";
      mm.test2[0] = "test2-0";
      mm.test3[0] = 3;
     
    }
对于这两种方式的 优缺点;;;不是很明!
望 指导

解决方案 »

  1.   

    比如说Winform的Control,既可以通过直接引用保证代码的正确性,又可以用FindControl或者遍历Controls得到Control对象,保证了灵活性。少了哪一种都会很不方便。
      

  2.   

    我觉得他的方式好些,
    好多书上讲,在内部使用的,建议定义成私有和保护的
    需要供外部使用的,都建议定义public的属性,
      

  3.   

    比如说,你要把DataGridView或者GridView的某一列隐藏掉。如果仅仅针对的是特定的列,那么用直接引用就可以了。但也有可能需求是用户要能自己选择需要隐藏的列,那么你要把所有列名都列出来,然后在用户选择之后用Columns["列名"]这样的方式得到该列。
    这是很实际的一个例子。
      

  4.   

    显然被推荐的文章所执行的效率并不高,是一种低效的行为,但是也有它的好处,也就是说,他这样访问数组中成员的时候,可以全部通过变量来访问了,两个索引项都是可变变量也没问题,楼主你这种写法肯定不行,至少需要手动指定一个数组对象后才能使用索引,索引内可以传递整型ID变量。不过我倒是有另一个疑问了,这样的索引第一次看到过,微软考虑过对它的反射调用了吗?反射方法中有关索引的反射只支持一个索引ID传递,不支持其它参数的传递,那么反射该索引属性该如何做呢?
      

  5.   


    说的不错,的确!推荐文章:做到 2个索引都使用 变量!(改善维护性)
    效率方面是否不够?
    我的写法不行?不行在哪里?没说明白至于 反射 
    new object[] { "key",0}  行?