C # comment créer une valeur Guid?


Réponses:




83

Il y a deux façons

var guid = Guid.NewGuid();

ou

var guid = Guid.NewGuid().ToString();

les deux utilisent la classe Guid, le premier crée un objet Guid, le second une chaîne Guid.


47
@Justin, C'est une façon de procéder. var guid = Guid.NewGuid().ToString()le transforme simplement en chaîne.
Michael Meadows

@MichaelMeadows Oui c'est correct, le premier crée un nouvel objet Guid, le second crée une chaîne.
Justin


34
var guid = new Guid();

Hé, c'est un "valide", bien que pas très utile, Guid.

(le guid est entièrement composé de zéros, si vous ne le savez pas. Parfois, cela est nécessaire pour indiquer l'absence de guid, dans les cas où vous ne souhaitez pas utiliser un guid annulable)


Cela ne crée pas tous les zéros. Il crée un Guid valide. Guid.Empty renvoie tous les zéros.
FlavorScape

8
@FlavorScape avant d'essayer, je parie que vous 50 rep (via bounty) vous vous trompez. Traiter?

meh, je pensais à Guid.NewGuid (). Je tiens vraiment à vérifier le nouveau Guid ()
FlavorScape

11
Je vous ai battu par un avec cette solution:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Jeppe Stig Nielsen

2
Lorsque vous devez passer un guid à du code que vous ne possédez pas, il n'accepte pas un guid nullable.

26

Pour faire un guid all-0 "vide" comme 00000000-0000-0000-0000-000000000000 .

var makeAllZeroGuID = new System.Guid();

ou

var makeAllZeroGuID = System.Guid.Empty;

Pour faire un guide réel avec une valeur unique, ce que vous voulez probablement.

var uniqueGuID = System.Guid.NewGuid(); 

21
System.Guid desiredGuid = System.Guid.NewGuid();

Cela semble être la nouvelle façon de procéder, à partir d'au moins 2012. Je ne semble pas avoir Guid.NewGuid () disponible en 2015.
Dave Yarwood

2
@DaveYarwood Guid est sous l'espace de noms System depuis très longtemps, et c'est ce à quoi tout le monde fait référence dans les autres réponses (il se trouve juste qu'une nouvelle classe a déjà ajouté l'Usage pour l'espace de noms System dans le modèle normal)
Skuld

18

Si vous voulez créer un Guid "souhaité", vous pouvez le faire

var tempGuid = Guid.Parse("<guidValue>");

<guidValue> serait quelque chose comme 1A3B944E-3632-467B-A53A-206305310BAE.


2

Il y a aussi ShortGuid - Une classe GUID plus courte et conviviale en C #. Il est disponible en Nuget . Plus d'informations ici .

PM> Install-Package CSharpVitamins.ShortGuid

Usage:

Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);

Cela produit un nouveau GUID, utilise ce GUID pour créer un ShortGuid et affiche les deux valeurs équivalentes dans la console. Les résultats seraient quelque chose comme:

ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
Guid:      b1754c14-d296-4b0f-a09a-030017f4461f

0

Si vous l'utilisez dans la réflexion C #, vous pouvez obtenir le guid à partir de l'attribut de propriété comme suit

var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
  var myguid= Guid.Parse(attribute.Id.ToString());
}


-2
//Retrive your key ID on the bases of GUID 

declare @ID as uniqueidentifier

SET @ID=NEWID()
insert into Sector(Sector,CID)

Values ('Diry7',@ID)


select SECTORID from sector where CID=@ID

peut être utilisé alternatvity SCOPE.IDENTITY ()
sammer

28
C # est très différent de ce dont je me souviens.
Archibald
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.