Una variable puede verse simplemente como un almacén de objetos de un
determinado tipo al que se le da un cierto nombre. Por tanto, para definir una
variable sólo hay que decir cuál será el nombre que se le dará y cuál será el
tipo de datos que podrá almacenar, lo que se hace con la la siguiente sintaxis:
<tipoVariable>
<nombreVariable>;
Una variable puede ser definida
dentro de una definición de clase, en cuyo caso se correspondería con el tipo
de miembro que hasta ahora hemos denominado campo. También puede definirse como un variable local a un método, que es una variable definida dentro del
código del método a la que sólo puede accederse desde dentro de dicho código.
Otra posibilidad es definirla como parámetro
de un método, que son variables que almacenan los valores de llamada al método
y que, al igual que las variables locales, sólo puede ser accedidas desde
código ubicado dentro del método. El siguiente ejemplo muestra como definir
variables de todos estos casos:
class A
{
int x, z;
int y;
void F(string a, string
b)
{
Persona p;
}
}
En este ejemplo las variables x, z e y son campos de tipo int, mientras que p
es una variable local de tipo Persona
y a y b
son parámetros de tipo string. Como se muestra en el ejemplo, si un
método toma varios parámetros las definiciones de éstos se separan mediante
comas (carácter ,),
y si queremos definir varios campos o variables locales (no válido para
parámetros) de un mismo tipo podemos incluirlos en una misma definición
incluyendo en <nombreVariable>
sus nombres separados por comas.
Con la sintaxis de definición de
variables anteriormente dada simplemente definimos variables pero no
almacenamos ningún objeto inicial en ellas. El compilador dará un valor por
defecto a los campos para los que no se indique explícitamente ningún valor
según se explica en el siguiente apartado. Sin embargo, a la variables locales
no les da ningún valor inicial, pero detecta cualquier intento de leerlas antes
de darles valor y produce erores de compilación en esos casos.
Ya hemos visto que para crear
objetos se utiliza el operador new.
Por tanto, una forma de asignar un valor a la variable p
del ejemplo anterior sería así:
Persona
p;
p = new
Persona(“José”, 22, “76543876-A “);
Sin embargo, C# también
proporciona una sintaxis más sencilla con la que podremos asignar un objeto a
una variable en el mismo momento se define. Para ello se la ha de definir
usando esta otra notación:
<tipoVariable>
<nombreVariable> = <valorInicial>;
Asi por ejemplo, la anterior
asignación de valor a la variable p podría reescribirse de esta otra forma más
compacta:
Persona
p = new Persona(“José”, 22,
“76543876-A“);
La especificación de un valor
inicial también combinarse con la definición de múltiples variables separadas
por comas en una misma línea. Por ejemplo, las siguientes definiciones son
válidas:
Persona p1 = new Persona(“José”,
22, ”76543876-A“), p2 = new Persona(“Juan”, 21, ”87654212-S”);
Y son tratadas por el compilador
de forma completamente equivalentes a haberlas declarado como:
Persona
p1 = new Persona(“José”, 22, “76543876-A“);
Persona
p2 = new Persona(“Juan”, 21, ”87654212-S”);