Índice
1. Introducción2. Palabras Clave
3. Estructura Guid
3.1 Generalidades
3.2 Generación de un ID
3.2.1 Método static Guid.NewGuid
3.2.2 Constructores
3.3 Comparación de Guids
3.4 Miembros sobresalientes
4. Conclusiones
5. Literatura & Enlaces
1. Introducción
Otra de las estructuras sobresalientes en .NET Framework es Guid. Esta estructura representa un identificador globalmente único. Este artículo C# describe los conceptos fundamentales detrás de esta estructura, cómo generar un identificador, constructores disponibles, métodos static, representación literal, y uso del operador de igualdad ==.
2. Palabras Clave
- .NET
- Estructura
- Guid
- Identificador único
- Operador de igualdad
3. Estructura Guid
3.1 Generalidades
Definida en el namespace System se halla la estructura Guid. Esta estructura ha sido diseñada para la representación de un identificador globalmente único. Es un valor de 16 bits, que una vez generado, es único en el mundo (Albahari, 2012).
Entre las aplicaciones interesantes de esta estructura están las de asignación de un ID único a un tipo de dato (e.g., serialización) o llaves primerias en tablas de bases de datos.
Hay aproximadamente 2^128 o 3.4 x 10^38 objetos Guid únicos (Albahari, 2012).
3.2 Generación de un ID
Existen dos mecanismos generación de un objeto Guid.
3.2.1 Método static Guid.NewGuid()
A través del método static Guid.New se genera un Guid único:
Guid g = Guid.NewGuid();
Console.WriteLine(g.ToString());
Cuando este código es ejecutado en LINQPad, este es el resultado que se obtiene en este momento:
3a137107-3908-49ae-bb16-d57433d94c7a
La anterior aclaración es a razón de que por cada ejecución se produce un Guid ID distinto.
3.2.2 Constructores
La estructura Guid cuenta hasta con 5 versiones sobrecargadas de su constructor ("Guid Structure", 2016):
Figura 1. Constructores sobrecargados de Guid ("Guid Structure", 2016). |
Por ejemplo, la primera versión Guid(Byte[]) inicializa una nueva instancia de Guid con un arreglo de 16 bits. O, con Guid(String) el objeto Guid se formatea como un número hexadecimal de 32 dígitos con separadores opcionales en las posiciones 8, 12, 16 y 20 (Albahari, 2012).
Ejemplo básico de uso:
En este ejemplo de uso se crean dos objetos con la versión sobrecargada del constructor Guid(String):
Guid g1 = new Guid("{3a137107-3908-49ae-bb16-d57433d94c7a}");
Guid g2 = new Guid("3a137107-3908-49ae-bb16-d57433d94c7a");
Obsérvese con cuidado que los dos objetos Guid representan el mismo ID: los corchetes son opcionales.
3.3 Comparación de Guids
El operador de igualdad == es usado para la comparación de objetos Guid; así:
Console.WriteLine("¿`g1` = `g2`?: {2}", g1, g2, g1 == g2);
El resultado de la evaluación g1 == g2 es igual a True. Esto es así debido a la aclaración dada al final de la subsección inmediatamente anterior.
3.4 Miembros sobresaliantes
Miembros como ToByteArray ("Guid.ToByteArray", 2016) -que permite convertir una objeto Guid a un arreglo de bytes- y la propiedad Guid.Empty ("Guid.Empty Field", 2016) -que se encarga de obtener un Guid con todos los valores igual a cero- son algunas de las funciones, método y propiedad respectivamente, interesantes que el programador puede encontrar en esta estrucutra.
4. Conclusiones
Se estudió la estructura Guid. Se comprendió que esta estructura es capaz de representar un valor globalmente único. Se estudiaron dos métodos de generación de un Guid, así como el uso del operador == para comparar Guids.
A partir del siguiente artículo se iniciará la serie Comparación de Igualdad.
5. Literatura & Enlaces
Albahari, J., Albahari, B. (2012). C# 5.0 in a Nutshell. United States: O'Reilly Media.Guid Structure (System) (2016, julio 24). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.guid.aspx
Guid.NewGuid Method (System) (2016, julio 24). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.guid.newguid.aspx
Guid.ToByteArray Method (System) (2016, julio 24). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.guid.tobytearray.aspx
Guid.Empty Field (System) (2016, julio 24). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.guid.empty.aspx
O
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.