解决方案 »

  1.   

    在.net中,我首先是懒得去纠缠什么“单例模式”这个词儿。我首先要问,为什么不定义一个 public static 的字段或者属性呢?
      

  2.   

    我要告诉你的是,你写的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;
                 }
      

  3.   


     private static MatchSettingManage matchManage = null;        public static MatchSettingManage Instance()
            {
                    if (matchManage == null)
                    {
                        matchManage =  new MatchSettingManage();
                    }
                    return MatchManage;
            }
    不应该是 MatchSettingManage.Instance()  这样调用么
      

  4.   

    因为你写的根本不是单例,你还没理解单例。。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;
                 }