单例模式失败 C#instanceclass 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在.net中,我首先是懒得去纠缠什么“单例模式”这个词儿。我首先要问,为什么不定义一个 public static 的字段或者属性呢? 我要告诉你的是,你写的public static MatchSettingManage Instance这种代码,不是单例模式。单例模式不是通过一个static的属性来获取值的。你根本没有搞懂单例模式,你只是写了一个.net的静态属性而已。抛开什么“单例模式”,我们看你的代码,它应该真正去仅仅给私有变量赋值一次: private static MatchSettingManage MatchManage = null; public static MatchSettingManage Instance { get { if (MatchManage == null) { MatchManage = new MatchSettingManage(); } return MatchManage; } set { MatchManage = value; } private static MatchSettingManage matchManage = null; public static MatchSettingManage Instance() { if (matchManage == null) { matchManage = new MatchSettingManage(); } return MatchManage; }不应该是 MatchSettingManage.Instance() 这样调用么 因为你写的根本不是单例,你还没理解单例。。private static MatchSettingManage MatchManage = null; public static MatchSettingManage Instance { get { if (MatchManage == null) { return new MatchSettingManage(); } return MatchManage; } set { MatchManage = value; } }单例的话只需要get就行了。访问类的这个属性,就返回单例。另外,你的get访问元也写错了。 你那样子写每次都会new 一个新的实例,因为静态变量MatchManage一直是null。要改成:get { if (MatchManage == null) { MatchManage = new MatchSettingManage(); } return MatchManage; } 进程监视怎么弄 新人请教关于sql事务的业务逻辑 C#中Socket连接为什么总是丢失?? 懂正则表达式的帮忙 ListBox显示的基本问题 求教一个COMBOBOX的问题~~~在线等~~ 请问关于静态变量初始化的问题 TreeView 的AfterLabelEdit事件是这样触发的吗 求改个C#函数为断点续传? 疑惑中: 既然int就是System.Int32,那么所谓的装箱操作岂不是不存在的? 求助:如何封装C++的中的回调函数供C#调用 datalist绑定图片
这种代码,不是单例模式。单例模式不是通过一个static的属性来获取值的。你根本没有搞懂单例模式,你只是写了一个.net的静态属性而已。抛开什么“单例模式”,我们看你的代码,它应该真正去仅仅给私有变量赋值一次: private static MatchSettingManage MatchManage = null; public static MatchSettingManage Instance
{
get
{
if (MatchManage == null)
{
MatchManage = new MatchSettingManage();
}
return MatchManage;
}
set
{
MatchManage = value;
}
private static MatchSettingManage matchManage = null; public static MatchSettingManage Instance()
{
if (matchManage == null)
{
matchManage = new MatchSettingManage();
}
return MatchManage;
}
不应该是 MatchSettingManage.Instance() 这样调用么
{
get
{
if (MatchManage == null)
{
return new MatchSettingManage();
}
return MatchManage;
}
set
{
MatchManage = value;
}
}单例的话只需要get就行了。访问类的这个属性,就返回单例。
另外,你的get访问元也写错了。 你那样子写每次都会new 一个新的实例,因为静态变量MatchManage一直是null。要改成:
get
{
if (MatchManage == null)
{
MatchManage = new MatchSettingManage();
}
return MatchManage;
}