在winform中,全局变量定义最省内存!(速度最快)

pfworld 2010-03-11 05:25:29
方案一: 单列模式



#region 单列模式

/// <summary>
/// 静态本身对象
/// </summary>
private static LoginModel theLoginModel = null;

/// <summary>
/// 私有构造方法
/// </summary>
private LoginModel() { }

/// <summary>
/// 返回本身对象
/// </summary>
/// <returns></returns>
public static LoginModel Instance()
{
if (theLoginModel == null)
{
theLoginModel = new LoginModel();
}
return theLoginModel;
}

#endregion


方案二:



private static string _Login_UserName;

public static string Login_UserName
{
get { return LoginModel._Login_UserName; }
set { LoginModel._Login_UserName = value; }
}



...全文
869 42 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
pfworld 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 vrhero 的回复:]
你还不明白什么叫线程安全...

对自己还不理解的事情轻易下结论是肤浅的...
[/Quote]

我标题打错了,我是问问题,不是下结论!
zhushoudong 2010-03-17
  • 打赏
  • 举报
回复
晕 这和线程有联系?
vrhero 2010-03-17
  • 打赏
  • 举报
回复
你还不明白什么叫线程安全...

对自己还不理解的事情轻易下结论是肤浅的...
  • 打赏
  • 举报
回复
单例的概念,是用于new一个对象那种使用情况下,考虑设计需求不考虑什么内存最省。
烈火蜓蜻 2010-03-17
  • 打赏
  • 举报
回复
没看懂什么意思
pfworld 2010-03-17
  • 打赏
  • 举报
回复
没有找到GlobalSettings的相关模板文件!
孤剑 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 pfworld 的回复:]

主要想在登录时,把数据库参数信息写入到全局变量内,然后再不同窗体,线程内使用,部分参数参与循环!所以对于系统资源方面想寻找消耗最少,结构稳定的方法!
[/Quote]

如果仅仅是这个需求,上面的两种可以说没有差别,这种细微的差别只有大量调用时才会凸显。
并且,他们的最终都是使用了 static,所以最后看不出来内存有和差别,只是创建的时间有先后而已。

全局的变量一般做法就是使用结构体或固定的一个类(eg:GlobalSettings)作为信息载体,此类 GlobalSettings 是否实现单态并不重要,更重要的是其内部的字段,类型划分需要注意而已。
pfworld 2010-03-15
  • 打赏
  • 举报
回复
主要想在登录时,把数据库参数信息写入到全局变量内,然后再不同窗体,线程内使用,部分参数参与循环!所以对于系统资源方面想寻找消耗最少,结构稳定的方法!
孤剑 2010-03-14
  • 打赏
  • 举报
回复
上述两种方法对于内存来说看不出来差异,只不过时间的问题
方法1: 使用了延迟加载,2 就是直接分配,
不过1中存在多线程访问时,可能会有多个实例的现象,这个需要用到 double check

关于内存分配,要在这种内容上对比,基本上的不出结果。
建议楼主继续关注其他更多,更广的面。
比如:架构设计方面的问题,业务流程的优化,等
  • 打赏
  • 举报
回复
你想让它有什么用呢?

一旦多说一些,问题就真正暴露出来了。
pfworld 2010-03-14
  • 打赏
  • 举报
回复
up 寻求最佳解决方案!!
smart_qiang 2010-03-13
  • 打赏
  • 举报
回复
不懂,来看看。。。。。。。。。。。。。。。。。。
stning 2010-03-13
  • 打赏
  • 举报
回复
...别误人子弟了。
RexZheng 2010-03-13
  • 打赏
  • 举报
回复
能够合理使用确实能提高性能,比如实现某些数据缓存功能等。

但是也没有像楼主说的那么绝对。
maomao198907 2010-03-13
  • 打赏
  • 举报
回复
没看懂,。。。
OOOqqqOOO 2010-03-13
  • 打赏
  • 举报
回复
说得有道理,静态,不需要变动。
pfworld 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 ljm10 的回复:]
不符合面向对象封装的意思,要是都这样设计不如回归c吧
[/Quote]

在程序使用中,有些参数需要时常使用,还有些出现在循环、Timer中,因此想到用全局变量!
cuike519 2010-03-12
  • 打赏
  • 举报
回复
方法1和方法2不都是用了静态变量么?两者有什么区别???

模式和变量的类型有啥关系???
foxwfb 2010-03-12
  • 打赏
  • 举报
回复
JFJFJFJFJF
jzywh 2010-03-12
  • 打赏
  • 举报
回复
注意多线程
加载更多回复(21)

111,098

社区成员

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

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

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