static void Main(string[] args)
        {
            CPersona uno = CPersona.ProporcionarInstancia();

            //hacemos algo con la instancia
            uno.PonerDatos("iris", 21);
            uno.AlgunProceso();
            Console.WriteLine(uno);
            Console.WriteLine("---------------------");

            CPersona dos = CPersona.ProporcionarInstancia();

            Console.WriteLine(dos);


            //podemos modificar sus propiedades


            dos.PonerDatos("isrrael", 36);
            Console.WriteLine(dos);
            Console.WriteLine(uno);

            //al crear otro tenemos el mismo objeto creado en dos

            CPersona tres = CPersona.ProporcionarInstancia();

            Console.WriteLine(tres);


            //la instancia mantiene el mismo estado siempre que ses convocada.
            //la clase sinleton será solo una . puede cambiar sus propiedades
            //y agregar o quitar metodos. pero sera una clase unica.
        }
 public static CPersona ProporcionarInstancia()
 {
     //verificamos que la instancia no existe
     if (instancia == null)
     {
         //si no existe se crea
         instancia = new CPersona();
         Console.WriteLine("creada por primera vez");
     }
     //retornamos la instancia
     return(instancia);
 }