Publicado el 30 de Abril del 2018
1.015 visualizaciones desde el 30 de Abril del 2018
142,8 KB
6 paginas
Creado hace 11a (28/02/2013)
119
Capítulo 4
Fundamentos del lenguaje
1. Las variables, constantes y enumeraciones
Fundamentos del lenguaje
1.1 Las variables
Las variables le permitirán almacenar, durante la ejecución de su aplicación,
diferentes valores útiles para el funcionamiento de su aplicación. Se debe de-
clarar una variable obligatoriamente antes de su uso en el código. Mediante la
declaración de una variable, usted fija sus características.
1.1.1 Nombre de las variables
Veamos las reglas que se deben respetar para nombrar las variables:
– El nombre de una variable empieza obligatoriamente con una letra.
– Puede estar formada por letras, cifras o por el carácter subrayado (_).
– Puede contener un máximo de 1.023 caracteres (por razones prácticas, es
preferible limitarse a un tamaño razonable).
– Hay una distinción entre minúsculas y mayúsculas (la variable
EdadDelCapitan es diferente de la variable edaddelcapitan).
120
C# 5
Los fundamentos del lenguaje
– No se deben usar las palabras reservadas del lenguaje (a pesar de lo dicho, sí
que es posible, pero en este caso el nombre de la variable debe ir precedido
del carácter @. Por ejemplo, una variable nombrada if se utilizará en el
código con esta forma @if=56;).
1.1.2 Tipo de variables
Al especificar un tipo para una variable, indicamos qué datos vamos a poder
almacenar en esta variable.
Hay dos categorías de tipos de variables disponibles:
– Los tipos valor: la variable contiene realmente los datos.
– Los tipos referencia: la variable contiene la dirección de la memoria donde se
encuentran los datos.
Los diferentes tipos de variables disponibles están definidos a nivel del propio
Framework. Usted también puede utilizar los alias definidos a nivel de Visual
C#, quizá más explícitos. Así, el tipo System.Int32 definido a nivel del
Framework se puede sustituir con el tipo int en Visual C#.
Se pueden clasificar los diferentes tipos en seis categorías.
Los tipos numéricos enteros
sbyte
short
int
long
byte
ushort
uint
ulong
Tipos enteros con signo
-128
-32768
-2147483648
-9223372036854775808
127
32767
2147483647
9223372036854775807
8 bits
16 bits
32 bits
64 bits
0
0
0
0
Tipos enteros sin signo
255
65535
4294967295
18446744073709551615
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
-
I
N
E
s
n
o
i
t
i
d
E
©
8 bits
16 bits
32 bits
64 bits
Fundamentos del lenguaje
Capítulo 4
121
Cuando elige un tipo para sus variables enteras, debe tener en cuenta los va-
lores mínimo y máximo que piensa almacenar en la variable con el fin de op-
timizar la memoria utilizada por la variable. En efecto, es inútil utilizar un
tipo Long para una variable cuyo valor no supera 50; un tipo byte es suficiente
en este caso.
Observación
El ahorro de memoria parece irrisorio para una sola variable, pero se vuelve
interesante en caso de uso de tablas de gran dimensión.
En caso contrario, si desea optimizar la velocidad de ejecución de su código, es
preferible utilizar el tipo int.
Los tipos decimales
float
double
decimal
4 bytes
-3.40282347E+38
-1.7976931348623157E+308
8 bytes
-79228162514264337593543950335 79228162514264337593543950335 16 bytes
3.40282347E+38
1.7976931348623157E+308
Se debe tener en cuenta las mismas consideraciones de optimización que para
las variables enteras. En este caso, se obtiene una rapidez de ejecución máxima
con el tipo double. Se recomienda el tipo decimal para los cálculos financieros,
en los cuales los errores de redondeo están prohibidos, pero en detrimento de
la rapidez de ejecución del código.
Los tipos caracteres
El tipo char (carácter) se utiliza para almacenar un carácter único. Una va-
riable de tipo char utiliza dos bytes para almacenar el código Unicode del
carácter. En un juego de caracteres Unicode, los primeros 128 caracteres son
idénticos al juego de caracteres ASCII, los caracteres siguientes hasta 255
corresponden a los caracteres especiales del alfabeto latino (por ejemplo, los
caracteres acentuados); el resto se utiliza para símbolos o para los caracteres
de otros alfabetos.
122
C# 5
Los fundamentos del lenguaje
La asignación de un valor a una variable de tipo char se debe efectuar enmar-
cando el valor con caracteres ‘’. Algunos caracteres tienen un significado espe-
cial para el lenguaje y por esa razón se deben utilizar precedidos de una
secuencia de escape. Esta secuencia siempre empieza con el carácter \. La tabla
siguiente resume las diferentes secuencias disponibles.
Secuencia de escape
Carácter
\’
\"
\\
\0
\a
\b
\f
\n
\r
\t
\v
Comilla simple
Comilla doble
Barra inversa
Carácter nulo
Alerta
Backspace
Salto de página
Salto de línea
Retorno de carro
Tabulación horizontal
Tabulación vertical
También se pueden utilizar estas secuencias de escape en una cadena de carac-
teres. Cada una de ellas representa un carácter único.
Para poder almacenar cadenas de caracteres, conviene utilizar el tipo string,
que representa una serie de cero a 2.147.483.648 caracteres. Las cadenas de ca-
racteres son invariables ya que, durante la asignación de un valor a una cadena
de carácter, algo de espacio se reserva en memoria para el almacenamiento. Si
luego esta variable recibe un nuevo valor, el sistema le asigna una nueva ubi-
cación en memoria. Afortunadamente, este mecanismo es transparente para
nosostros y la variable siempre hará automáticamente referencia al valor que
le está asignado. Con este mecanismo, las cadenas de caracteres pueden tener
un tamaño variable. El espacio ocupado en memoria se ajusta automática-
mente a la longitud de la cadena de caracteres.
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
-
I
N
E
s
n
o
i
t
i
d
E
©
Fundamentos del lenguaje
Capítulo 4
123
Para asignar una cadena de caracteres a una variable, el contenido de la cadena
se debe introducir entre “ ”, como en el ejemplo siguiente:
Ejemplo
NombreDelCapitan = "Garfio";
Si algunos caracteres especiales deben aparecer en una cadena, se deben espe-
cificar con una secuencia de escape. Sin embargo, existe otra posibilidad que
permite a veces hacer el código más legible. Esta solución consiste en hacer que
la cadena de caracteres vaya precedida del símbolo @. El compilador considera
entonces que se deben utilizar todos los caracteres contenidos en las comillas
dobles tal cual, incluidos los posibles retornos de carro. La única limitación es
relativa al carácter " que, si debe formar parte de la cadena, se debe doblar.
Las dos declaraciones de cadenas siguientes son idénticas:
cadena = "¿Qué dice?\rÉl dice \"hola\"";
cadena = @"¿Qué dice?
Él dice ""hola""";
Cuando se visualizan en la consola, dan el resultado siguiente:
Observación
Hay numerosas funciones de la clase string que permiten el manejo de las ca-
denas de caracteres y que serán detalladas más adelante en este capítulo.
124
El tipo bool
C# 5
Los fundamentos del lenguaje
El tipo bool permite utilizar una variable que puede tener dos estados verda-
dero/falso, si/no, on/off.
La asignación se hace directamente con los valores true o false, como en el
ejemplo siguiente:
Disponible=true;
Modificable=false;
El tipo Object
Quizá sea el tipo más universal de Visual C#. En una variable de tipo Object,
usted puede almacenar cualquier cosa. En realidad, este tipo de variable no al-
macena nada. La variable no contendrá el propio valor, sino la dirección, en la
memoria de la máquina, donde se podrá encontrar el valor de la variable. Tran-
quilícese, todo este mecanismo es transparente, y nunca tendrá que manejar
las direcciones de memoria directamente.
Observación
Una variable de tipo Object podrá por lo tanto hacer referencia a cualquier
otro de tipo de valor, incluidos tipos numéricos simples. Sin embargo, el códi-
go será menos rápido debido al uso de una referencia.
El tipo dynamic
Desde su primera versión, el lenguaje C# es un lenguaje estáticamente tipado.
Se debe declarar cada variable utilizada con un tipo definido. Esta exigencia
permite al compilador comprobar que usted sólo realiza con esta variable ope-
raciones compatibles con su tipo. Esto impone por supuesto conocer el tipo de
variable en el momento de diseñar de la aplicación. Sin embargo, a veces ocurre
que sólo se puede conocer el tipo de la variable en el momento de ejecutar la
aplicación. En este caso, es posible utilizar la palabra reservada dynamic como
tipo para la variable afectada. Para las variables declaradas con este tipo, el
compilador no hace ninguna verificación de compatibilidad relativa a las ope-
raciones ejecutadas con esta variable. Estas operaciones de verificación se efec-
túan sólo en el momento de ejecutar la aplicación. Si estas operaciones no son
compatibles con el tipo de la variable, se lanza una excepción.
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
-
I
N
E
s
n
o
i
t
i
d
E
©
Comentarios de: Capítulo 4 - Fundamentos del lenguaje - 1. Las variables, constantes y enumeraciones (0)
No hay comentarios