====== Tipos de Datos ======
Existen 2 grupos de datos los tipos de datos compuestos y los tipos de datos primitivos.
===== Tipos de Datos Primitivos =====
Son aquellos tipos de datos que están predefinidos por el lenguaje.
^ Nombre corto ^ Clase .NET ^ Tipo ^ Ancho ^ Intervalo (bits) |
|byte |Byte |Entero sin signo |8 |0 a 255|
|sbyte |SByte |Entero con signo |8 |-128 a 127|
|int |Int32 |Entero con signo |32 |-2.147.483.648 a 2.147.483.647|
|uint |UInt32 |Entero sin signo |32 |0 a 4294967295|
|short |Int16 |Entero con signo |16 |-32.768 a 32.767|
|ushort |UInt16 |Entero sin signo |16 |0 a 65535 |
|long |Int64 |Entero con signo |64 |-922337203685477508 a 922337203685477507|
|ulong |UInt64 |Entero sin signo |64 |0 a 18446744073709551615|
|float |Single |Tipo de punto flotante de precisión simple|32 -3,402823e38 a 3,402823e38|
|double |Double |Tipo de punto flotante de precisión doble |64 |-1,79769313486232e308 a 1,79769313486232e308 |
|char |Char |Un carácter Unicode |16 |Símbolos Unicode utilizados en el texto |
|bool |Boolean |Tipo Boolean lógico |8 |True o false |
|object |Object |Tipo base de todos los otros tipos | |
|string |String |Una secuencia de caracteres | |
|decimal |Decimal |Tipo preciso fraccionario o integral, que puede representar números decimales con 29 dígitos significativos |128 |±1.0 × 10e−28 a ±7.9 × 10e28 |
===== Tipos de Datos Compuestos =====
Son aquellos tipos de datos que están compuestos por 1 o mas datos tanto primitivos como compuestos, es decir, las clases que solemos crear para nuestras necesidades.
public class Persona {
public int PersonaID { get; set; }
public string Nombre { get; set; }
public int Edad { get; set; }
public decimal Altura { get; set; }
}
===== Variables =====
Son declaraciones de tipos de datos donde se valor puede cambiar.
//declaracion inicial con valor de 10
int edad = 10;
//asignacion de valor a 22
edad = 22;
//incremento de valor en 1
edad++;
===== Constantes =====
Son declaraciones de tipos de datos donde su valor se define desde la declaración, y este no cambia.
public class Constantes {
public const decimal PI = 3.141592;
}
/**** En otro fragmento de codigo ****/
//Error por querer cambiar el valor
Constantes.PI = 3.1416;
===== Enumeradores =====
Son agrupadores de constantes con nombres de firmas las cuales son identificables a simple vista.
public enum Rol
{
Usuario = 1,
Autorizador = 2,
Administrador = 3
}
/**** En otro fragmento de codigo ****/
var rol = Rol.Autorizador;
==== Flag ====
Son enumeradores con un atributo especial que las hace poder ser utilizadas en operaciones BitWise.
[Flags]
public enum Permisos
{
Lectura = 1,
Escritura = 2,
Asignacion = 4,
Compartir = 8,
Generar_Reporte = 16,
Autorizar = 32
}
/**** Clase ****/
public class Empleado {
public Permisos Permisos { get; set; }
}
/**** En otro fragmento de codigo ****/
var empleado = new Empleado() { Permisos = Permisos.Leer | Permisos.Escribir };
if (empleado == Permisos.Autorizar) {
Console.WriteLine("El empleado puede autorizar");
} else {
Console.WriteLine("El empleado no puede autorizar");
}