我做了一个用户控件A,在这个对象里new 了几个其它用户控件b1,c1。
问:我需要释放几个其它用户控件b1,c1吗?怎么释放,在什么事件里释放?

解决方案 »

  1.   

    无法手动释放,
    这个是.net的垃圾回收机制的弊端,只有当.net察觉对象没有用的时候,才会释放
      

  2.   

    通常是不需要释放的
    如果非要释放
    在不用的时候 直接写成b1=null,c1=null 就成了
      

  3.   

    .net的垃圾回收机制问题就是不知道系统什么时候回收,有可能立马就干掉了,比如b1=null,你可以写在你的自定义控件的事件中
      

  4.   

    .net会帮你释放的,如果你非要释放,可以用xx.Dispose();
      

  5.   

    试试使用using
    例如 
    using (YourClass YourObject = new YourClass ())
    {
        //对YourObject做操作
    }
    这样在'}'之后就会释放内存.
      

  6.   

    补充:你的class 必须继承 IDispose接口才能using和dispose
      

  7.   

    不用释放吧
    释放就用Dispose吧
      

  8.   

    针对用户控件,在什么事件释放?
    using (YourClass YourObject = new YourClass ())
    {
        //对YourObject做操作
    }
    估计不行,我以后还要在父控件对这个控件操作。
      

  9.   

    用户控件如果你不手工释放的话,会跟窗体一起释放。不用使用using,你可以在不想要的时候先从窗体的Controls集合中删掉他
    接下来直接调用
    (c as IDisposable).Dispose();
    然后清除引用即可
      

  10.   

    如果要调用Dispose,则必须继承IDisposable接口,并提供相应的具体实现,否则一点儿意义都没有。