C # come creare un valore Guid?


Risposte:




83

Ci sono due modi

var guid = Guid.NewGuid();

o

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

entrambi usano la classe Guid, il primo crea un oggetto Guid, il secondo una stringa Guid.


47
@Justin, è un modo per farlo. var guid = Guid.NewGuid().ToString()lo trasforma in una stringa.
Michael Meadows,

@MichaelMeadows Sì, è corretto, il primo crea un nuovo oggetto Guid, il secondo crea una stringa.
Justin,


34
var guid = new Guid();

Ehi, è un Guid "valido", anche se non molto utile.

(il guid è tutto zeri, se non lo sai. A volte questo è necessario per indicare nessun guid, nei casi in cui non vuoi usare un Guid nullable)


Ciò non crea tutti gli zeri. Crea un Guid valido. Guid.Empty restituisce tutti gli zeri.
FlavorScape

8
@FlavorScape prima di provare, scommetto che hai 50 ripetizioni (tramite la taglia) ti sbagli. Affare?

meh, stavo pensando a Guid.NewGuid (). Mi interessa davvero verificare il nuovo Guid ()
FlavorScape

11
Ti ho battuto per uno con questa soluzione: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
Quando devi passare un guid al codice che non possiedi, questo non accetta un guid annullabile.

26

Per fare un "vuoto" all-0 guid come 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

o

var makeAllZeroGuID = System.Guid.Empty;

Fare un vero guid con un valore unico, quello che probabilmente vuoi.

var uniqueGuID = System.Guid.NewGuid(); 

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

Questo sembra essere il nuovo modo per farlo, almeno per il 2012. Non sembra che Guid.NewGuid () sia disponibile nel 2015.
Dave Yarwood,

2
@DaveYarwood Guid è stato nello spazio dei nomi di sistema per molto tempo ed è ciò a cui si riferiscono tutti gli altri nelle altre risposte (sembra solo che a una nuova classe sia già stato aggiunto l'utilizzo per lo spazio dei nomi di sistema nella modello normale)
Skuld

18

Se vuoi creare una guida "desiderata", puoi farlo

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

dove <guidValue>sarebbe qualcosa del genere 1A3B944E-3632-467B-A53A-206305310BAE.


2

C'è anche ShortGuid: una classe GUID più breve e intuitiva in C #. È disponibile come Nuget . Maggiori informazioni qui .

PM> Install-Package CSharpVitamins.ShortGuid

Uso:

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

Questo produce un nuovo guid, usa quel guid per creare un ShortGuid e visualizza i due valori equivalenti nella console. I risultati sarebbero qualcosa sulla falsariga di:

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

0

Se lo stai usando in Reflection C #, puoi ottenere la guida dall'attributo della proprietà come segue

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

può essere utilizzato SCOPE.IDENTITY alternatvity ()
Sammer

28
C # sembra molto diverso da quello che ricordo.
Archibald,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.