C # Wie erstelle ich einen Guid-Wert?


Antworten:




83

Es gibt zwei Möglichkeiten

var guid = Guid.NewGuid();

oder

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

Beide verwenden die Guid-Klasse, die erste erstellt ein Guid-Objekt, die zweite eine Guid-Zeichenfolge.


47
@ Justin, das ist eine Art, es zu tun. var guid = Guid.NewGuid().ToString()verwandelt es einfach in eine Zeichenfolge.
Michael Meadows

@MichaelMeadows Ja, das ist richtig, das erste erstellt ein neues Guid-Objekt, das zweite erstellt eine Zeichenfolge.
Justin


34
var guid = new Guid();

Hey, es ist eine "gültige", wenn auch nicht sehr nützliche Guid.

(Die Guid besteht nur aus Nullen, wenn Sie es nicht wissen. Manchmal wird dies benötigt, um keine Guid anzuzeigen, wenn Sie keine nullfähige Guid verwenden möchten.)


Das schafft nicht alle Nullen. Es wird eine gültige Guid erstellt. Guid.Empty gibt alle Nullen zurück.
FlavorScape

8
@FlavorScape, bevor Sie es versuchen, ich wette, Sie 50 Wiederholungen (über Kopfgeld) Sie sind falsch. Deal?

meh, ich dachte an Guid.NewGuid (). Es ist mir wirklich
wichtig

11
Ich habe Sie mit dieser Lösung um eins geschlagen: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
Wenn Sie eine Guid an Code übergeben müssen, den Sie nicht besitzen und der keine nullfähige Guid akzeptiert.

26

Um eine "leere" All-0-Guid wie zu machen 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

oder

var makeAllZeroGuID = System.Guid.Empty;

Um eine tatsächliche Guid mit einem eindeutigen Wert zu erstellen, was Sie wahrscheinlich wollen.

var uniqueGuID = System.Guid.NewGuid(); 

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

Dies scheint der neue Weg zu sein, dies seit mindestens 2012 zu tun. Ich habe Guid.NewGuid () anscheinend nicht im Jahr 2015 verfügbar.
Dave Yarwood

2
@DaveYarwood Guid befindet sich seit sehr langer Zeit unter dem System-Namespace und ist das, worauf sich alle anderen in den anderen Antworten beziehen (es ist nur so, dass einer neuen Klasse bereits die Verwendung für den System-Namespace im hinzugefügt wurde normale Vorlage)
Skuld

18

Wenn Sie eine "gewünschte" Anleitung erstellen möchten, können Sie dies tun

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

wo <guidValue>wäre so etwas 1A3B944E-3632-467B-A53A-206305310BAE.


2

Es gibt auch ShortGuid - Eine kürzere und url-freundliche GUID-Klasse in C #. Es ist als Nuget erhältlich . Weitere Informationen hier .

PM> Install-Package CSharpVitamins.ShortGuid

Verwendungszweck:

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

Dadurch wird eine neue Guid erstellt, diese Guid zum Erstellen einer ShortGuid verwendet und die beiden entsprechenden Werte in der Konsole angezeigt. Die Ergebnisse wären wie folgt:

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

0

Wenn Sie dies in Reflection C # verwenden, können Sie die Guid wie folgt aus dem Eigenschaftsattribut abrufen

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

kann alternatvity verwendet werden SCOPE.IDENTITY ()
sammer

28
C # sieht ganz anders aus als ich mich erinnere.
Archibald
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.