viernes, 5 de octubre de 2012

[002] Variables Públicas


Como tengo la intención de ofrecer mis conocimientos compartidos entre Foxpro y C Sharp para todo aquel que considere interesantes mis ideas ( especialmente los que, como yo, vienen de Foxpro) hablaré para los unos y los otros.

Sabido es que C Sharp es totalmente orientado a objetos ( su paradigma es el de la programación orientada a objetos POO ), en el caso de Foxpro se comparte la programación secuencial ( paradigma de otros tiempos ) y la POO. Esto proporciona cierta libertad a los programadores, algo muy parecido a lo que les sucede a los programadores de C++.

En este artículo os voy a proporcionar una forma de tener variables públicas o globales en una aplicación de C Sharp, sin perder su paradigma de lenguaje orientado a objetos.

Empezaremos por desgranar un poco el funcionamiento de arranque de C Sharp el cual es muy peculiar, ya que en el caso de Foxpro el punto de entrada del programa es un fichero (prg, form, etc.), en el caso de C Sharp es un método que por la obligatoriedad del paradigma orientado a objetos, este debe de estar en una clase. Vamos a ver un ejemplo:


namespace Nombre_del_Programa
{
    class Prg
    {
        static void Main(string[] args)
        {
            // Esta es la primera línea de código...
            Console.WriteLine("Hola Mundo!");
        }
    }
}

Lo primero que comprobamos es que el método Main es estático. Esto me hace pensar que poco podemos hacer con la clase Prg... ¿ La instanciamos, y creamos objetos de ella ? .- No tiene mucho sentido...


Por lo tanto no considero una locura hacer que la clase Prg sea también una clase estática, y que incluso las variables de la clase Prg sean variables estáticas. Veamos este ejemplo en el que creamos una variable para almacenar la ruta de ejecutable de la aplicación que estamos creando.

namespace NuestroPrograma
{
    static class Prg
    {
        public static string CurDir = "";
       // Otra variable pública para toda la aplicación...
      // Otra variable pública para toda la aplicación...
      // Otra variable pública para toda la aplicación...
      // Otra variable pública para toda la aplicación...

        static void Main(string[] args)
        {
            // Esta es la primera línea de código...
            CurDir = Application.StartupPath + "\\";
            Console.WriteLine("Hola Mundo!");
        }
    }
}

En este caso en cualquier parte de nuestro programa podremos acceder a la variable CurDir y utilizarla o cambiar su contenido. Todas la variables públicas / Globales de nuestra aplicación las podemos insertar en la clase Prg y así podremos utilizarlas donde queramos ( siempre que estemos dentro del ámbito del namespace NuestroPrograma ) sólo tendremos que llamarlas con la siguiente sintaxis:

namespace NuestroPrograma
{
    static class FuncionesGenerales
    {
        public string CurDirectory()
        {
            return Prg.CurDir;
        }
    }
}

Mi único consejo en este caso es que las variables declaradas en la clase Prg estén inicializadas con algún valor por defecto.













No hay comentarios:

Publicar un comentario