本帖最后由 jiangsheng 于 2010-09-26 04:58:14 编辑

解决方案 »

  1.   

    因为还有 stu 在引用它。
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/0xy59wtx%28v=VS.80%29.aspx
      

  3.   

    建议用范型替代ArrayList
    System.Collections.Generic.List<Man> mans = new System.Collections.Generic.List<Man>();
    Man joannes = new Man("Joannes", 28, "天津市河西区");
    mans.Add(joannes);
    Man stu = (Man)mans[0];
    stu.sayHi();
    mans.Remove(joannes);
    不行试试:mans.RemoveAt(0)
      

  4.   

    那应该在mans.Remove(joannes);中放入什么值呢?还望不吝赐教!
      

  5.   

    使用RemoveAt(0)
    或lIst<T>删除
    不同对象
      

  6.   

    用:
    mans.RemoveAt(0)
    0表示这数组mans中的第1个元素.
    不过在vs2010 中试了一下你的代码,是好用的,代码如下:
         public   class Man
            {   private  string _name;
                private  int _age;
                private string _address;
                public string Name{  get{return _name;} }
                public int Age  {  get { return _age; } }
                public string Address { get { return _address; } }            public Man(string Name, int Age,string Address)
                {
                    _name = Name;
                    _age = Age;
                    _address = Address;
                }
                public  void sayHi()
                {
                    MessageBox.Show("Hi!");
                }
                
            }        private void button1_Click(object sender, EventArgs e)
            {
                ArrayList mans = new ArrayList();
                Man joannes = new Man("Joannes", 28, "天津市河西区");
                 mans.Add(joannes);
                Man stu = (Man)mans[0];
                stu.sayHi();
                mans.Remove(joannes);        }