Blog

.Net: Y las Variables Globales en C#?

Posted by:

Contestando a la pregunta del título rápidamente, la respuesta es que no hay Variables Globales en C#, ya que no se considera como “Orientado a Objetos”.

La alternativa que se nos plantea es mediante Clases Estáticas públicas.

Voy a intentar explicarlo un poco más sencillito, ya que a mí me costó entenderlo inicialmente.

¿Qué utilidad tienen, o cuándo se usan?

Pongamos el caso que necesitamos tener un valor disponible desde cualquier formulario/pantalla de nuestra aplicación. En otros lenguajes se definiría como una variable global, y estaría disponible desde cualquier opción.

Entendiendo el Get y el Set

Si os estáis iniciando en el mundo de la programación, os habréis encontrado con el Get y el Set y a veces no queda muy claro su utilización. Voy a intentar explicar cómo lo entendí yo.

Mediante el Get, lo que haremos será OBTENER un valor de una variable predefinida

Mediante el Set, lo que haremos será ASIGNAR  un valor a dicha variable

Pongamos un ejemplo:

Imaginamos que quiero tener disponible desde varios formularios el código de un determinado cliente, para efectuar varias operaciones y consultas.

La variable “global” será CodigoCliente

En una de las ventanas lo que haremos será asignar un valor a la variable “CodigoCliente”, por lo que se utilizará el SET.

Para recuperar el valor almacenado en la variable “CodigoCliente” lo que utilizaremos será el GET, que nos devolverá el valor almacenado.

PASO A PASO

Bien, esto que parece muy sencillo, vamos a intentar explicar paso a paso su funcionamiento y el por qué de su funcionamiento.

1º Creación de una Clase Estática Pública
2º Definimos la variable “Global”, que será privada ya que se utilizará dentro del ámbito de la clase.
3º Definimos una propiedad Estática (static) en este caso será string y debe ser Pública.
Nota: A diferencia del método, no termina con paréntesis.
4º Finalmente definimos el Get y el Set de la siguiente manera

El GET que tampoco lleva paréntesis, debe devolver el valor de la variable con que trabajemos, y el SET debe asignar el valor.

Quedaría algo así:

C#:

  1. span style=”color: #808080;”>””

Nota: para asignar el valor, se hace mediante “value” o “valor”, que será lo que haya a la derecha del igual en la asignación.

Podemos utilizar otro funcionamiento más simple:

C#:

  1.  

Es la forma más sencilla de trabajar.

de esta manera podemos asignar un valor a la variable “global” desde cualquier método y clase, y también podemos recuperar su valor.

A título personal, es la más limpia y clara de utilizar.

C#:

  1. span style=”color: #008080; font-style: italic;”>//y asignación
  2.  
  3. csvarGlobales.variableGlobal=“nuevo valor”;
  4.  
  5.  

 

 

Su funcionamiento

Vamos a suponer que tenemos dos formularios independientes Form1 y Form2
En Form1 vamos a asignar el valor a la variable para usarla más tarde en el Form2

C#:

  1. span style=”color: #808080;”>”Codigo0001″;
  2. }

Nota: no hay que instanciar la variable, y se utiliza directamente desde la clase.

Para recuperar el valor desde el Form2 procederemos así:

C#:

  1.  

A partir de la versión 3.0 del FrameWork se puede utilizar la siguiente declaración:

C#:

  1.  

3


About the Author:

Discussion

  1. jemp_intrepido  August 16, 2012

    Excelente aporte

  2. manu  September 6, 2012

    Gracias !

  3. Juan  May 16, 2014

    ¡Muchas gracias por tu explicación, está excelente!
    Saludos y un abrazo.

Add a Comment

UA-30641277-1