int i;
        ToolStripMenuItem[] b = new ToolStripMenuItem[2];
        for (i = 1; i < 2; i++)
        {
           // b[i] = new System.Windows.Forms.ToolStripMenuItem();      
            b[i].Text = "1";
            
         }执行  b[i].Text = "1";出错了。why?我不是已经new了吗?

解决方案 »

  1.   

    你new的只是数组,数组里的元素并不存在
      

  2.   

    你这个数值是放对象的,你的i个 对象放进去没?
    貌似没有? b[i] 里面的对象没有放入, 就不能设置text
      

  3.   

    莫非 ToolStripMenuItem[] b = new ToolStripMenuItem[2]; 
    意思是建立一个指针数组?
      

  4.   

    应为是 ToolStripMenuItem 引用类型,值类型可以不new
      

  5.   

     ToolStripMenuItem[] b = new ToolStripMenuItem[2]; 因为这句话只是声明了两个引用,
    就相当于你做了两个空盒子,里面放什么还不知道,
    所以需要实例化b[i]=new ToolStripMenuItem(),这就相当于往里面存在东西,知道 里面是什么东西了你就可以使用,
    b[i].Text="1"就不会出错了