tipos de datos
Tipos de Datos
Por: Óscar López, M.Sc.
olopez@uniandino.com.co
¿Qué es un Tipo de Dato?
¿Una clase?
¿Una estructura?
¿Una interfaz?
¿Un delegado?
¿Un tipo básico?
¿Un protocolo?
¿Puede un objeto tener más de un tipo?
OALP-2004 All Rights Reserved
¿Qué es un Tipo de Dato?
“El conjunto de mensajes a los que, en un
momento dado, puede responder un
objetodurante el tiempo de ejecución”
OALP-2004 All Rights Reserved
Tipos de Datos en C#
C# es un lenguaje fuerte y estáticamente tipado
Todos los objetos que se crean y se usan en un
programa tienen un tipo
Todo puede ser tratado como un objeto, aún los tipos
básicos
Cada tipo de C# corresponde a un tipo .NET
Se pueden clasificar como:
Tipos valor (incluyen tipos básicos, también denominadossimples o primitivos)
Tipos referencia
Tipos puntero
Otra posible clasificación:
Tipos intrínsecos, incorporados en el lenguaje (tipos básicos +
Object + String)
Tipos definidos por el usuario
OALP-2004 All Rights Reserved
Categorización de Tipos de Datos
OALP-2004 All Rights Reserved
Tipos Valor vs. Tipos Referencia
La principal diferencia entre tipos valor y tiposreferencia es la forma en que sus valores son
almacenados en memoria
Una variable de tipo valor guarda su valor en memoria
asignada en la pila
El recolector de basura destruye los objetos en la pila
un tiempo después de que el frame de pila en el que
fueron declarados termina
Una variable de tipo referencia almacena su dirección
en la pila, pero el objeto propiamente dicho se
encuentra en el heapLos objetos en el heap son recolectados un tiempo
después de que la última referencia a éstos haya sido
destruida
OALP-2004 All Rights Reserved
Tipos Valor
Se refieren a tipos en la pila
Además de los tipos básicos, se incluyen otros
tipos especiales como enumeraciones y
estructuras
C# tiene 13 tipos básicos, contando con tipos
sin signo y un tipo para cálculos de alta
precisión
Deser necesario, los tipos básicos se pueden
convertir a Object
No pueden ser null
Son pasados “por valor” a los métodos (es
decir, son copiados)
OALP-2004 All Rights Reserved
Tipos Básicos
Tipo
Rango
Tamaño
-128 a 127
1
SByte
0 a 255
1
Byte
-32768 a 32767
2
Int16
ushort
0 a 65535
2
UInt16
int
-231 a 231-1
4
Int32
uint
0 a232-1
4
UInt32
long
-263 a 263-1
8
Int64
sbyte
byte
short
OALP-2004 All Rights Reserved
Tipo .NET
Tipos Básicos
Tipo
Rango
Tamaño
ulong
0 a 264-1
8
UInt64
float
-3.4E38 a -1.4E-45 para valores negativos
1.4E-45 to 3.4E38 para valores positivos
con 7 dígitos significativos
4
Single
double
-1.8E308 a -4.9E-324 para valoresnegativos
4.9E-324 a 1.8E308 para valores positivos
con 15-16 dígitos significativos
8
Double
decimal
±1.0E-28 a ±7.9E28
precisión fija con 28-29 dígitos significativos
y la posición del punto decimal
16
Decimal
char
1 cáracter Unicode
2
Char
bool
true o false
1
Boolean
OALP-2004 All Rights Reserved
Tipo .NET
Tipos Básicos - Numéricos
Se puedenclasificar como “con signo” y “sin
signo”
También, como tipos de valores enteros y de
valores de punto flotante
Por razones de eficiencia, es preferible usar
tipos con signo y con un tamaño soportado
directamente a nivel de hardware
Si no se especifica un cáracter especial postfijo, todos los tipos de punto flotante se
consideran double y los enteros int
Se puede usar la notación 0xNNNN pararepresentar números hexadecimales
OALP-2004 All Rights Reserved
Caracteres Especiales Post-Fijos
cáracter
Tipo
Ejemplo
L
long
long temp = 999L
U
uint
uint temp = 999U
UL
ulong
ulong temp = 999UL
F
float
float temp = 9.99F
M
decimal
decimal temp = 9.99M
OALP-2004 All Rights Reserved
Tipos Básicos - decimal
Es un nuevo tipo de C#,...
Regístrate para leer el documento completo.