lunes, 12 de marzo de 2012

Un vistazo a los tipos de datos

Hola a todos, en esta entrada se abordan los tipos de datos en C# de manera muy general, pero seguramente habrá una que otra cosita que no sabían acerca de esto; sin mas vueltas entremos en materia.

Como cualquier lenguaje de programación, C# define un conjunto de tipos de datos, los cuales son usados para representar variables, valores de retorno, parámetros, miembros de un objeto, etc. Casi siempre (si no es que siempre), nos referimos a estos tipos de datos por medio de palabras cortas (tokens) que hacen referencia a miembros definidos en el CTS (Common Type System).

En el CTS estan definidos los datos comunes a todo el .NET Framework (C#, VB, F#, etc), es decir, el codigo intermedio generado en C# es el mismo que el que generaría su equivalente en VB, por ejemplo:



int x;        
//es lo mismo que
Dim x as Integer


Ambas instrucciones generan el mismo código intermedio ya que int e Integer son lo mismo en el CTS. Pero en C# también se han definidos tipos de datos exclusivos para este, en la siguiente tabla se muetra cada tipo de dato disponible en C#, su rango, la sintaxis larga y si esta definido en el CTS.


Notación C# cortaEn el CTS?System TypeRangoSignificado en la vida
boolSiSystem.Booleantrue/falseRepresenta verdadero o falso
sbyteNoSystem.SByte-128 a 127Entero de 8 bits con signo
byteSiSystem.Byte0 a 255Entero de 8 bits sin signo
shortSiSystem.Int16-32,768 a 32,767Entero de 16 bits con signo
ushortNoSystem.UInt160 a 65,535Entero de 16 bits sin signo
intSiSystem.Int32-2,147,483,648 a 2,147,483,647Entero de 32 bits con signo
uintNoSystem.UInt320 a 4,294,967,295Entero de 32 bits sin signo
longSiSystem.Int64-9,223,372,036,854,775,808
a 9,223,372,036,854,775,807
Entero de 64 bits con signo
ulongNoSystem.UInt640 a 18,446,744,073,709,551,615Entero de 64 bits sin signo
charSiSystem.CharU+0000 a U+ffffCaracter Unicode de 16 bits
floatSiSystem.Single±1.5 ✕ 10E–45 a ±3.4 ✕ 10E38Número de punto flotante de 32 bits
doubleSiSystem.Double±5.0 ✕ 10E–324 a ±1.7 ✕ 10E308Número de punto flotante de 64 bits
decimalSiSystem.Decimal±1.0 ✕ 10E–28 a ±7.9 ✕ 10E28Número signado de 96 bits
stringSiSystem.StringLimitado por la memoria del sistemaRepresenta un conjunto de caracteres Unicode
ObjectSiSystem.ObjectPuede almacenar cualquier tipo de datos en una variable objetoLa clase base de todos los tipos en el universo del .NET

Cada uno de los tipos numéricos (como int, short, etc.) se asignan a su correspondiente estructura en el System namespace. Estructuras son tipos de valores alojados en el Stack. Por otro lado, string y object son tipos de referencia, lo que significa que son alojados en el Heap. En próximas entregas veremos qué es el Stack y el Heap.



Leonardo Landín
icolandin@gmail.com

No hay comentarios:

Publicar un comentario