两种类的声明方式有何不同?

qingtianzhuren 2010-06-17 05:14:56
public class FormMain
{
private static FormMain frm_Main;
public static FormMain creatNewForm ()
{
if (FormMain.frm_Main == null)
{
FormMain.frm_Main = new FormMain();
}
return FormMain.frm_Main;
}


.............................
//其它成员
public void FormMain fun()
{
...........
}
}

声明:FormMain f=FormMain.creatNewForm();


方法2:

public class FormMain
{

public void FormMain fun()
{
...........
}
}


FormMain f=new FormMain();



看到有人用上面的方法,实在有点不明白,为什么要那样?第二种不是简单又是一样的效果吗?有什么异同吗?
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
颤菊大师 2010-06-17
  • 打赏
  • 举报
回复
public class FormMain
{
private static FormMain frm_Main;
public static FormMain creatNewForm ()
{
if (FormMain.frm_Main == null)
{
FormMain.frm_Main = new FormMain();
}
return FormMain.frm_Main;
}


作用在于,
你在窗体1:FormMain f=FormMain.creatNewForm();
和在窗体2:FormMain f=FormMain.creatNewForm();
都是同一个对象。

单例模式有点像:你到不同的ATM取款,无论你在哪里取款,永远都是从同一个“银行的库存”里扣的。
cmy0891 2010-06-17
  • 打赏
  • 举报
回复
第一种方法是通过当前FormMain.creatNewForm()方法把当前实例的对象返回给f对象
第二种方法是重新实例化一个FormMain对象给f对象
tien0306 2010-06-17
  • 打赏
  • 举报
回复
两种是不一样的.

第一种方法,是一种单实例的方法.
返回的只有一个对象.
内存中也有一个对象.

而第二种方法则是,调用一次,从新生成一次对象.
捷哥1999 2010-06-17
  • 打赏
  • 举报
回复
第一种方法,你没有看过设计模式,属于singelton,单例模式!控制了程序中只有一个该类对象!
第二个是通常不做控制的声明方法!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧