4.3.2.- Tipos de datos

Un tipo de datos es una categoría que está determinada por un conjunto de datos con características comunes entre sí.
Asociado a un tipo de dato se tiene el espacio de almacenamiento que ocupa cada dato.
En C#, existen varios tipos de datos que se clasifican en dos categorías:
Tipos valor
Tipos referencia
Los tipos valor son tipos de datos que almacenan los valores de los datos.
Los tipos referencia almacenan las direcciones de las localidades de memoria donde están almacenados los valores.
Tipos valor
Los tipos valor se subclasifican de la siguiente manera:
Tipo simple
Tipo entero
con signo
sbyte
short
int
long
sin signo
byte
ushort
uint
ulong
Tipo punto flotante
float
double
Tipo char
Tipo bool
Tipo decimal
Tipo struct
Tipo enum
Estos nombres de tipo valor en realidad son alias de los nombres originales definidos en .NET, que pertenecen a nombres de clases del espacio de nombres System.
La siguiente tabla muestra los alias para los tipos valor de .NET
Tipo de .NET
Alias
System.Boolean
bool
System.Byte
byte
System.Sbyte
sbyte
System.Char
char
System.Decimal
decimal
System.Double
double
System.Single
float
System.Int32
int
System.UInt32
uint
System.Int64
long
System.UInt64
ulong
System.Object
object
System.Int16
short
System.UInt16
ushort
System.String
string

Tipos referencia
Los tipos referencia se clasifican en:
Tipo class
Tipo interface
tipo delegate
tipo array
Características de los tipos valor
La siguiente tabla muestra el espacio requerido(en bytes) y el rango de valores para los tipos enteros.
Tipo
Bytes
Rango
sbyte
1
-128 a 127
byte
1
0 a 255
short
2
-32,768 a 32,767
ushort
2
0 a 65,535
int
4
-2,147,483,648 a 2,147,483,647
uint
4
0 a 4,294,967,295
long
8
-9,223,372,036,854,775,808a 9,223,372,036,854,775,807
ulong
8
0 a 18,446,744,073,709,551,615



Y esta para los tipos de punto flotante.
Tipo
Bytes
Precisión(dígitos)
Rango de valores
float
4
7
1.5E-45 a 3.4E38
double
8
15 a 16
5.0E-324 a 1.7E308


El tipo decimal es de punto fijo y se utiliza en operaciones financieras.
Tipo
Bytes
Precisión(dígitos)
Rango de valores
decimal
16
28 a 29
1.0E-28 a 7.9E28
Tipo bool
El tipo bool admite sólo dos valores:
true
false
Tipo char
Con 2 bytes, permite asignar valores para 65,536 caracteres diferentes. Esto significa que se pueden manejar todos los caracteres de todos los lenguajes naturales del mundo.
También se pueden asignar valores a secuencias de escape. Las secuencias de escape son útiles cuando se necesita manejar caracteres no imprimibles.
En la siguiente tabla se muestran las secuencias de escape y los nombres de los caracteres que representan.
Secuencia
Nombre
\'
Comilla simple
\"
Comillas dobles
\\
Barra invertida
\0
Carácter nulo
\a
Alerta (pitido)
\b
Retroceso
\f
Avance de forma
\n
Nueva línea
\r
Retorno de carro
\t
Tabulación horizontal
\v
Tabulación vertical
Tipos enum
El tipo enum permite utilizar un grupo de constantes por medio de nombres más representativos. Las constantes pueden ser de los tipos: byte, short, int, long.
Ejemplos:
1).- enum dígitos {cero,uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve};
2).- enum colores {rojo,regro,azul,blanco,amarillo};
rojo=0, negro=1, azul=2, blanco=3, amarillo=4
3).- enum docenas {una=12, dos=24, tres=36};
4).- enum clave { director=100, subdirector, jefeDepto, jefeOfna};
director = 100, subdirector = 101, jefeDepto=102, jefeOfna=103
Por default, los valores son de tipo int . El siguiente ejemplo cambia el tipo a byte.
5).- enum docenas : byte
{
una=12,dos=24,tres=36
};
Tipos struct
Los tipos struct son sintácticamente iguales a las clases, con la diferencia de que class es un tipo referencia y struct es un tipo valor.
Ejemplo:
struct Persona {
stringnombre ;byte edad;
};
Tipos referencia
Tipo class
Un tipo class define una estructura de datos que puede contener atributos y métodos.
Tipo object
Todos los tipos de C# heredan de System.Object, lo cual garantiza que cualquier tipo tenga los métodos de la clase object.
Tipo string
El tipo string representa una cadena de caracteres Unicode. El tipo string es un alias de la clase System.String. El tipo string deriva directamente del tipo object.
Aunque string es un tipo referencia, los objetos se construyen como si fueran de tipo valor.
Puede accederse a los caracteres de una cadena, como si fueran del tipo array.
Por ejemplo:
string carrera = "Sistemas Computacionales";
char c4 = carrera[3]; // c4 = t
El tipo void
El tipo void no ocupa espacio en memoria. Se utiliza, principalmente, como tipo de retorno para los métodos que no devuelven valor alguno.

No hay comentarios: