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:
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# corta | En el CTS? | System Type | Rango | Significado en la vida |
---|---|---|---|---|
bool | Si | System.Boolean | true/false | Representa verdadero o falso |
sbyte | No | System.SByte | -128 a 127 | Entero de 8 bits con signo |
byte | Si | System.Byte | 0 a 255 | Entero de 8 bits sin signo |
short | Si | System.Int16 | -32,768 a 32,767 | Entero de 16 bits con signo |
ushort | No | System.UInt16 | 0 a 65,535 | Entero de 16 bits sin signo |
int | Si | System.Int32 | -2,147,483,648 a 2,147,483,647 | Entero de 32 bits con signo |
uint | No | System.UInt32 | 0 a 4,294,967,295 | Entero de 32 bits sin signo |
long | Si | System.Int64 | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 | Entero de 64 bits con signo |
ulong | No | System.UInt64 | 0 a 18,446,744,073,709,551,615 | Entero de 64 bits sin signo |
char | Si | System.Char | U+0000 a U+ffff | Caracter Unicode de 16 bits |
float | Si | System.Single | ±1.5 ✕ 10E–45 a ±3.4 ✕ 10E38 | Número de punto flotante de 32 bits |
double | Si | System.Double | ±5.0 ✕ 10E–324 a ±1.7 ✕ 10E308 | Número de punto flotante de 64 bits |
decimal | Si | System.Decimal | ±1.0 ✕ 10E–28 a ±7.9 ✕ 10E28 | Número signado de 96 bits |
string | Si | System.String | Limitado por la memoria del sistema | Representa un conjunto de caracteres Unicode |
Object | Si | System.Object | Puede almacenar cualquier tipo de datos en una variable objeto | La 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