2011-08-05 12 views
5

Quiero definir User Define Guid en C#. Quiero insertar esto en mi objeto Guid:Definición de Guid definido por el usuario

dddddddddddddddddddddddddddddddd.

Cuando hago esto:

Guid user = "dddddddddddddddddddddddddddddddd"; 

tengo la err: El sistema no puede convertir de cadena a System.Guid. ¿Qué debería hacer aquí?

+3

Solo curiosidad por qué querrías esto. Dada la pereza de los usuarios, hay una alta probabilidad de que los usuarios ingresen todos los caracteres como los que has mostrado y luego habrá duplicados, por definición, no es una identificación "globalmente única". – David

+2

Estoy haciendo algunas pruebas unitarias. Es por eso ... y una de mis funciones necesita Guid como un param. –

+1

Perfectamente razonable. Gracias por satisfacer mi curiosidad! – David

Respuesta

11

Parece que quieren:

Guid user = Guid.Parse("dddddddddddddddddddddddddddddddd"); 

Tenga en cuenta que cuando imprima la guía nuevamente, se formateará de forma diferente Y:

// Prints dddddddd-dddd-dddd-dddd-dddddddddddd 
Console.WriteLine(user); 

Usted puede llamar al constructor Guid(string) lugar, pero personalmente prefiero llamar al método Parse - es más descriptivo de lo que está pasando, y se sigue la misma convención como int.Parse etc. Por otro lado, Guid.Parse solo se introdujo en .NET 4: si tiene una versión anterior de .NET, deberá usar el constructor. Creo que hay algunas diferencias en cuanto a los valores que serán aceptados por las diferentes llamadas, pero no conozco los detalles.

+0

Gracias, eso funcionó. –

+1

Para obtener la misma cadena en el resultado, use ['user.ToString (" N ")'] (http://msdn.microsoft.com/en-us/library/97af8hh4.aspx). –

5

un GUID debe ser de 32 caracteres formateado correctamente y que también sería llamado así

Guid user = new Guid("aa4e075f-3504-4aab-9b06-9a4104a91cf0"); 

que también podría tener una generada

Guid user = Guid.NewGuid(); 
+1

Guid.Parse maneja la entrada dada sin ningún problema, al igual que el constructor Guid. –

+0

¡LOL! ¿De dónde sacaste este Guid? –

+0

@Jon Skeet, gracias nunca lo supo. –

4

que desea utilizar para este Guid.Parse:

Guid user = Guid.Parse("dddddddddddddddddddddddddddddddd"); 
2

Probar:

Guid user = new Guid("dddddddddddddddddddddddddddddddd"); 

Espero que esto ayude!
N.S.

Cuestiones relacionadas