想达到的目的
代码:Class1 c1 = new Class1();
Class1 c2 = new Class1();
Console.WriteLine(ReferenceEquals(c1, c2));结果:
True

解决方案 »

  1.   

    Class1 c1 = new Class1();
    Class1 c2 = c1 ;
    Console.WriteLine(ReferenceEquals(c1, c2));
      

  2.   

     public class class1
        {
            private static class1 c1 = new class1();        public static class1 GetClass1
            {
                get { return c1; }
            }
        }
        //拿的时候直接class1.GetClass1;
      

  3.   

    把Class1 设计成单例模式,public class1
    {
        private class1(){}
        class1 c = new class1();
        public static getInstance()
        {
            return c;
        }
    }
      

  4.   

    Class1 c1 = class1.getInstance() Class1 c2 = class1.getInstance() 
    Console.WriteLine(ReferenceEquals(c1, c2));
      

  5.   

    绝对是要用static,因为你肯定要保留一个全局的东西在内存里,他才可能判断。无论是用托管还是非托管代码实现,你必须有个全局性的东西来保留住第一次的指针。
      

  6.   

    如果单件模型不用私有的构造函数的话
    那么最好的办法 是声明一个全局的静态的bool类型的变量
    例如:
    public Class SignPattern
    {
        static bool Flag=false;
         public SignPattern()
         {
            if(!Flag)
             {
               Flage=true;
               Console.WriteLine("创建对象成功");//这里你可以写其他的,或者不写!
             }
             else
             {
              throw.Exception("提示,只能创建一个对象");
             }
         } 
    }
    Class MainClass
    {
        static void Main()
        {
          
          try
           {
            SignPattern  c1=new SignPattern();
           }
          catch (Exception ex)
           {
             MessageBox.show(ex.message);
           }     try
           {
            SignPattern  c2=new SignPattern();
           }
         catch (Exception ex)
           {
             MessageBox.show(ex.message);
           }    }
    }
    我手写能力特别不好,如果有单词拼错,别笑话!
      

  7.   

    单件模型创建私有的构造函数可以这样写
    public Class SignPattern 

        static bool Flag=false; 
        private SignPattern() 
        { 
        } 
        Public static SignPattern GetNeWObj()
        {
           if(!Flage)
           {
              Flage=true;
              return new SignPattern();
           }
           else
           {  return  null;  }
        }

    这样写简单,但有一个缺陷,每次使用对象的时候,都要去判断对象是不是NULL,有时候我们会忘记这样做
    就会有麻烦,如果用上面的方法,就比较灵活。
      

  8.   

    单件模型创建私有的构造函数可以这样写
    public Class SignPattern 

        static bool Flag=false; 
        private SignPattern() 
        { 
        } 
        Public static SignPattern GetNeWObj()
        {
           if(!Flage)
           {
              Flage=true;
              return new SignPattern();
           }
           else
           {  return  null;  }
        }

    这样写简单,但有一个缺陷,每次使用对象的时候,都要去判断对象是不是NULL,有时候我们会忘记这样做
    就会有麻烦,如果用上面的方法,就比较灵活。