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.