写了这样一段代码
其中fastapp是自己写的一个类:在main中用:
fastapp[] applist={};
readlist(ref applist);readlist函数为:
readlist(ref fastapp[] a_list)
{   a_list=new fastapp[5];
   a_list[0].name="Test String Here"; //提示出错,说“未将对象设置引用到对象实例”
  //后面的代码省略啦
}fastapp类中name是一个public 的字段。
搞不懂……
各位大侠!哪出的错啊?求救……
在VS.NET 2005下,出错提示让用new???

解决方案 »

  1.   

    a_list=new fastapp[5];
    这里只是为 a_list 分配了空间,而 a_list 里面的每个对象都是 null,
    所以还是不能直接使用。在使用之前一定要为每个元素分配一个对象。
      

  2.   

    大侠说的对,可是怎么改呢?
    我刚才一连写了两个小时程序,都木了……
    是不是再用
    a_list[0]=new fastapp(arg1,arg2,arg3...)
    是这样么?现在手头没机器,请大侠明示。
      

  3.   

    你用错了吧,应该用out,而不应该用ref,如下:fastapp[] applist;
    readlist( out a_list );readlist( out fastapp[] a_list)
    {
    const int NUM = 5;
    a_list=new fastapp[NUM];
    for( int i = 0 ;i < NUM; i++ )
       a_list[i] = new fastapp();a_list[0].name="Test String Here"; 
    //后面的代码省略啦
    }
      

  4.   

    糊涂了……
    不太懂out 和ref的区别……我再找资料看看
    不过渔翁和exboy说的好象是一个意思吧?
    就是没有用a_list[i] = new fastapp();???
      

  5.   

    out:在参数没有初始化的时候就可以传递过去,并且保存修改之后的值.
    ref:在参数初始化之后才能传递过去,并且保存修改之后的值.
      

  6.   

    可以看一下这里
    http://wucountry.cnblogs.com/archive/2006/02/27/338514.html
      

  7.   

    谢各位高手,问题已经解决!
    用ref和out都是可以通过的。
    谢大侠们指教!:)