2009-11-09 7 views
33

Je suis nouveau à C#.Comment convertir un GUID en chaîne en C#?

Je sais que dans vb.net, je peux le faire:

Dim guid as string = System.Guid.NewGuid.ToString 

En C#, je suis en train de faire

String guid = System.Guid.NewGuid().ToString; 

mais j'obtenir un "ne peut pas convertir groupe méthode ' ToString 'à un type non-délégué' string 'Avez-vous eu l'intention d'appeler la méthode? " Erreur.

Répondre

60

Vous êtes absent le () après ToString qu'il marque comme un appel de fonction par rapport à une référence de fonction (le genre vous passez aux délégués), qui est d'ailleurs la raison pour laquelle C# n'a pas opérateur AddressOf, il est sous-entendu par la façon dont vous tapez .

Essayez ceci:

string guid = System.Guid.NewGuid().ToString(); 
+0

vous semblez avoir fait la même chose ... édité pour vous. – James

+0

Vous ne manquez pas le, aussi?;) – Bobby

6
String guid = System.Guid.NewGuid().ToString(); 

Sinon, c'est un délégué.

5

Vous devez

String guid = System.Guid.NewGuid().ToString(); 
5

vous manque() à la fin de ToString.

3

Avez-vous écrit

String guid = System.Guid.NewGuid().ToString; 

ou

String guid = System.Guid.NewGuid().ToString(); 

avis de la parenthèse

7

Dans Visual Basic, vous pouvez appeler une méthode parameterless sans la accolades (()). En C#, ils sont obligatoires. Vous devez donc écrire:

String guid = System.Guid.NewGuid().ToString(); 

Sans les accolades, vous affectez la méthode elle-même (au lieu de son résultat) à la guid variable et évidemment la méthode ne peut pas être converti en un String, d'où l'erreur.

53

Selon MSDN, la méthode Guid.ToString(string format) renvoie une représentation sous forme de chaîne de la valeur de cette instance Guid, conformément au spécificateur de format fourni.

Exemples:

  • guidVal.ToString() ou guidVal.ToString("D") retourne 32 chiffres séparés par des tirets: 00000000-0000-0000-0000-000000000000

  • guidVal.ToString("N") renvoie les 32 chiffres: 00000000000000000000000000000000

  • guidVal.ToString("B") retours 32 chiffres séparés par des tirets, enfermé dans accolades: {00000000-0000-0000-0000-000000000000}
+0

'guidVal.ToString (" P ")' renvoie 32 chiffres séparés par des hypens, entre parenthèses: '(00000000-0000-0000-0000-000000000000)' –

Questions connexes