有一个类内部定义了删除自己的方法,在其外部有一个arraylist,包含所有该类生成的对象,当执行删除自己方法时也从arraylist删除该对象应该怎么做?

解决方案 »

  1.   

    arraylist遍历一下,查找到该对象的创建,REMOVE掉!最好不要用arraylist,用HASTTABLE!
      

  2.   

    looner(漫漫求学路) :没错,就是销毁当前实例
      

  3.   

    可是怎么判断是哪个对象被dispose掉了呢?
      

  4.   

    当执行删除自己方法时也从arraylist删除该对象应该怎么做?何时删除自己?一定有个调用者吧,又调用者从ArrayList里删除该对象就好:
    XXXX obj = new XXXX();
    ArrayList al = new ArrayList();
    al.Add(obj);
    .....
    al.Remove(obj);
      

  5.   

    效率高一点的方式是此对象要定义一个销毁事件....
    在加入ArrayList时向ArrayList 注册此事件,当然ArrayList也要通过继承的方式支持此事件...
    当此类销毁时,必然触发此事件,通知ArrayList的子类,因此ArrayList就会自动Remove此对象了..
    可以在事件中传递对象本身,这样就不用遍历了.
      

  6.   

    ==》类里做了一个右键菜单,点击删除从而删除自己
    你说的删除自己是删除菜单项么?那么此时的调用方就是菜单,菜单将菜单项从菜单上删除(Remove)。你的类可以实现一个接口IContainer或者实现一个属性,获得Container,该属性在你将类添加到ArrayList的时候就将ArrayList赋给它就可以了。
    此时你在类内部就可以访问到这个对象了。
      

  7.   

    我在类中作了个静态的arraylist,两边都可以操作,从而解决该问题
      

  8.   

    zhiang75的方法太麻烦,cuike519的方法可能会简单点。
      

  9.   

    你在类里面定义一个Tag,存放ArrayList引用,这样就可以访问其,在删除时从集合里先删除。