2011-10-20 14 views
18

Tengo un código que reemplaza el guión con cadenas vacías en un GUID.¿Es buena idea eliminar el guión de un GUID?

Replace(System.Guid.NewGuid.ToString, "-", "") 

¿Eso eliminaría la singularidad de la guía?

También alguien puede confirmar esto también?

Estamos almacenando GUID en nuestra base de datos como char (32). ¿Está bien? Debido a que tenemos usuarios internacionales en diferentes zonas horarias, nos preocupa que la longitud del personaje pueda superar los 32. Gracias.

+11

Al igual que eso, ¿sabía usted que en lugar de reemplazar el carácter '-', utiliza el ToString del Guid? Simplemente use el formato N: System.Guid.NewGuid.ToString ("N") –

Respuesta

23

No, la exclusividad de Guid está garantizada.
Los guiones son solo para legibilidad: internamente Guid está hecho de 16 bytes.
Puede ver Microsoft y Wikipedia para obtener más información.
Tome un vistazo a los constructores también:

public Guid(int a, short b, short c, byte[] d); 
public Guid(int a, short b, short c, byte d, 
      byte e, byte f, byte g, byte h, 
      byte i, byte 
public Guid(uint a, ushort b, ushort c, byte d, 
      byte e, byte f, byte g, byte h, 
      byte i, byte j, byte k); 
+3

+1, para una respuesta simple –

+0

Gracias por regresar estamos almacenando un Guid en la base de datos como char (32). ¿Sería posible debido a un sitio web internacional o a una zona horaria diferente que la longitud del personaje supere el tamaño 32? – Salman

50

Los guiones son siempre en el mismo lugar, así que no, no va a reducir la singularidad.

System.Guid.NewGuid().ToString("N"); 

generará un GUID sin guiones, como en este documentation

+0

+1 para enseñar OP esta nueva sintaxis :) – Marco

+0

Agradable, muy, muy agradable. – fuzz

4

Los guiones no son parte de la propia GUID. Son solo parte de una representación común de guids. Por lo tanto, la eliminación no cambiará el valor de Guid en sí.

Cuestiones relacionadas