类的实例化,;类的对象静态化,该怎么理解呢?
程序中有好几个窗体,为了省事,我是按下面这种方法实例化的,如下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 --------------------编程问答--------------------
有个错误:
public static Form1 fm1 = null; 应为:
public static Form1 _this = null; --------------------编程问答-------------------- 跟楼主有同样疑问 --------------------编程问答-------------------- c#打包winfrom程序,怎么才能再次安装时提示已安装 ,大家帮个忙解决下 --------------------编程问答--------------------
嗯,对于每个窗体是不是只能实例化一次,因为要是多次的话前一次的该窗体上的处理结果都没有了,就比如绘图?? --------------------编程问答--------------------
是的,实例化一次就够了,除非你关闭了窗口: form1._this.Close() 这样的话 窗口资源就会Dispose 掉,下次需要重新实例化。
--------------------编程问答-------------------- 程序里面很少有调用close()方法的窗口,都是直接hide()的,还有程序慢还可能有其他原因吗,我的是基于wince平台的程序!
补充:.NET技术 , C#