用到了一些资源需要在dispose的时候释放,于是重写dispose方法,提示已经定义了一个名为“dispose”的具有相同参数类型的成员
 public partial class Form1 : Form
    {
        Thread mythread ; 
        Socket socket;       
        private override void Dispose(bool disposing) //cs0111错误。已存在dispose
        {
           
              socket.Close();//释放资源 
                mythread.Abort();//中止线程 
                        if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        } 
        public Form1()
        {
            InitializeComponent();            
        }    
       ...... 
      }   
在system.windows.forms空间中的form对象的dispose方法如下:
protected override void Dispose(bool disposing)
为啥没有办法重写?

解决方案 »

  1.   

    你不需要重新定义这个方法,你可以打开Designer.cs就会发现这个方法,修改就行了。
      

  2.   

    我看了一下,在生成工程的时候,系统自动在你的form1.designer.cs中生成了一个如下的方法
    /// <summary>
            /// 清理所有正在使用的资源。
            /// </summary>
            /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    你如果自己再添加一个的话,那么必然会报错误 1 类型“WindowsApplication1.Form1”已定义了一个名为“Dispose”的具有相同参数类型的成员 C:\Documents and Settings\Administrator\桌面\WindowsApplication1\WindowsApplication1\Form1.Designer.cs 14 33 WindowsApplication1
    这个错误。
    如果非要自己写这个的话,可以到你的designer.cs中修改已有的代码,或者再写一个重载方法。
    不知道说清楚没有。
      

  3.   

    为什么有的程序是没有form1.designer.cs的,所有的代码都放在了一个form1.cs中,窗体生成代码也是的。搞不懂。。