当前位置:编程学习 > C#/ASP.NET >>

类的实例化,;类的对象静态化,该怎么理解呢?

程序中有好几个窗体,为了省事,我是按下面这种方法实例化的,如下
 public class Form1 : Form  //主界面
    {
        public static Form1 fm1 = null;
        public static Form2 fm2 = new Form2();
        public static Form3 fm3 = new Form3();
        public static Form4 fm4 = new Form4();
        public static Form5 fm5= new Form5();
        public Form1()
        {
            fm1 = this;
            InitializeComponent();
        }
我现在程序运行的很慢,我就想是不是把窗体对象静态化后,占用的内存太大了,还有就是该怎么做呢?希望大家给解答一下,谢谢! 类 对象 内存 界面 c# --------------------编程问答-------------------- 用不着,Application.OpenForms就可以找到所有打开的窗体。 --------------------编程问答-------------------- 只要用new 关键字就会分配新内存

在其他form中使用这种方式;
   public static Form1 fm1 = null;
public Form1()
        {
            _this = this;
            InitializeComponent();
        }

每个Form都包含一个自身类型的引用
调用的时候 直接formx._this.Publicfields --------------------编程问答--------------------
引用 2 楼 whqjj2006 的回复:
只要用new 关键字就会分配新内存

在其他form中使用这种方式;
   public static Form1 fm1 = null;
public Form1()
        {
            _this = this;
            InitializeComponent();
        }

每个Form都包含一个自身类型的引用
调用的时候 直接formx._this.Publicfields


有个错误:
 public static Form1 fm1 = null; 应为:
public static Form1 _this = null; --------------------编程问答-------------------- 跟楼主有同样疑问 --------------------编程问答-------------------- c#打包winfrom程序,怎么才能再次安装时提示已安装  ,大家帮个忙解决下  --------------------编程问答--------------------
引用 2 楼 whqjj2006 的回复:
只要用new 关键字就会分配新内存

在其他form中使用这种方式;
   public static Form1 fm1 = null;
public Form1()
        {
            _this = this;
            InitializeComponent();
        }

每个Form都包含一个自身类型的引用
调用的时候 直接formx._this.Publicfields


嗯,对于每个窗体是不是只能实例化一次,因为要是多次的话前一次的该窗体上的处理结果都没有了,就比如绘图?? --------------------编程问答--------------------
引用 5 楼 di1988xiao 的回复:
c#打包winfrom程序,怎么才能再次安装时提示已安装  ,大家帮个忙解决下 


是的,实例化一次就够了,除非你关闭了窗口: form1._this.Close() 这样的话 窗口资源就会Dispose 掉,下次需要重新实例化。
--------------------编程问答-------------------- 程序里面很少有调用close()方法的窗口,都是直接hide()的,还有程序慢还可能有其他原因吗,我的是基于wince平台的程序!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,