Was ist der Standardwert für Guid?

104

Der Standardwert für intist 0, für stringist "" und für booleanist falsch. Könnte jemand bitte klären, wofür der Standardwert guidist?

Anker
quelle
24
Standard Guid ist {00000000-0000-0000-0000-000000000000}. Es sind im Grunde binäre Nullen.
Szer
1
Diese Website kann leere Guids liefern 00000000-0000-0000-0000-000000000000.com
Matthew
Als Randnotiz: Der Standardwert von Strings ist null, nicht "" (;
Johan Wintgens

Antworten:

117

Mit diesen Methoden können Sie eine leere Guid erhalten. Das Ergebnis ist eine Richtlinie, bei der alle Ziffern Nullen sind - " 00000000-0000-0000-0000-000000000000".

new Guid()

default(Guid)

Guid.Empty
Peter Rasmussen
quelle
42

Sie können verwenden Guid.Empty. Es ist eine schreibgeschützte Instanz der Guid-Struktur mit dem Wert von00000000-0000-0000-0000-000000000000

Sie können diese stattdessen auch verwenden

var g = new Guid();
var g = default(Guid);

Achten Sie darauf, nicht zu verwenden, Guid.NewGuid()da dadurch eine neue Guid generiert wird.

Verwenden Sie eine der Optionen, über die Sie und Ihr Team sie für besser lesbar halten, und halten Sie sich daran. Mischen Sie nicht verschiedene Optionen im Code. Ich denke, das Guid.Emptyist das Beste, da new Guid()es uns denken lässt, dass es einen neuen Leitfaden generiert, und einige wissen möglicherweise nicht, welchen Wert es hat default(Guid).

Hamid Pourjam
quelle
19

Der Standardwert für eine GUID ist leer. (zB: 00000000-0000-0000-0000-000000000000)

Dies kann mit Guid.Empty()oder aufgerufen werdennew Guid()

Wenn Sie eine neue GUID möchten, verwenden Sie Guid.NewGuid()

David Watts
quelle
8
@anchor Mir ist aufgefallen, dass Sie keine Antwort auf Ihre Fragen akzeptiert haben. Hier - in den FAQ von StackExchange können Sie lesen, wie Sie eine Antwort akzeptieren können und warum Sie das tun sollten.
Genhis
1
@Genhis Ich denke, er hat bekommen, was er brauchte und ist dann vom Erdboden gefallen haha
David Watts
10

Um die obigen Antworten zu erweitern, können Sie den Guid-Standardwert nicht Guid.Emptyals optionales Argument in der Definition von Methoden, Indexern oder Delegaten verwenden, da dies zu Fehlern bei der Kompilierung führt. Verwenden Sie default(Guid)oder new Guid()stattdessen.

Tinamou
quelle
-1

Erstellen Sie eine leere Anleitung oder eine neue Anleitung mithilfe einer Klasse ...

Der Standardwert von Guid ist 00000000-0000-0000-0000-000000000000

public class clsGuid  ---This is class Name
{
    public Guid MyGuid { get; set; }
}

static void Main(string[] args)
        {
            clsGuid cs = new clsGuid();   
            Console.WriteLine(cs.MyGuid); --this will give empty Guid  "00000000-0000-0000-0000-000000000000"

            cs.MyGuid = new Guid();
            Console.WriteLine(cs.MyGuid); ----this will also give empty Guid  "00000000-0000-0000-0000-000000000000"

            cs.MyGuid = Guid.NewGuid();
            Console.WriteLine(cs.MyGuid); --this way, it will give new guid  "d94828f8-7fa0-4dd0-bf91-49d81d5646af"

            Console.ReadKey(); --this line holding the output screen in console application...
        }
Akhilesh Singh
quelle
Ja ... Sie können den Klassenwert als statischen Wert festlegen ... oder in der Klasse verwenden.
Akhilesh Singh
Ich weiß, dass wir Guid verwenden können, da wir jeden anderen Typ in C # verwenden können. Meine Frage war, ob Ihre Antwort neue Informationen enthält, die vorher nicht hier waren. Es scheint, dass alle Informationen, die Sie gepostet haben, bereits vor Jahren von mehreren anderen Personen gepostet wurden.
nvoigt
Ja ... du hast Recht ... ich sage, dass ... du leere Guid und neue Guid mit einer Klasse verwenden kannst ... diese Art von Antwort ist nicht vorhanden ... in dieser Frage ...
Akhilesh Singh