Utilizar variables globales en C Sharp

Cuando surge la necesidad de almacenar valores que serán utilizados en toda la aplicación.

Para esto suelo utilizar variables estáticas en una clase. Las variables estáticas tienen la propiedad de ser variables únicas, lo cual quiere decir que si se altera su valor en cualquier parte de la aplicación este valor es guardado en la misma variable.

En el siguiente ejemplo explicare su uso:

using System;

namespace Quality
{
    public class Globales
    {
        private static string usuario;

        public static string Usuario
        {
            get { return usuario; }
            set { usuario = value; }
        }
    }
}

Modo de uso

using System;

namespace Quality
{
    public class ValidaLogin
    {
        public ValidaLogin()
        {
          Globales.Usuario = "vriquelme";
          System.Windows.Forms.MessageBox.Show(Globales.Usuario); 
        }
    }
}

El resultado en pantalla será «vriquelme», sin embargo con cualquier clase podríamos hacer esto ahora realizaremos el llamado a la misma variable desde una segunda clase llamada Proceso.

namespace Quality
{
    public class ValidaLogin
    {
        public ValidaLogin()
        {
          Globales.Usuario = "vriquelme";
          System.Windows.Forms.MessageBox.Show(Globales.Usuario); 
          Proceso proceso = new Proceso(); //Solo creamos una 
                                           //instancia de la clase             
          System.Windows.Forms.MessageBox.Show(Globales.Usuario); 
        }       
    }
}
namespace Quality
{
    public class Proceso
    {
        public Proceso()
        {
          System.Windows.Forms.MessageBox.Show(Globales.Usuario); 
          Globales.Usuario = "floyola";//Utilizaremos esta clase solo mostrar
        }                              //y cambiar el valor de la variable
    }
}

Si ejecutamos nuestro proyecto obtendremos como resultado

Desde la clase ValidaLogin «vriquelme»
Desde la clase Proceso «vriquelme»
Desde la clase ValidaLogin luego de pasar por Proceso «floyola»

Como pudieron apreciar no importa desde que clase rescatemos o cambiemos el valor, este siempre se mantiene en memoria, para así ser utilizado en cualquier punto del programa.

Espero sea de su utilidad.

Saludos

También te podría gustar...