Jednym z pól naszej struktury jest typ Guid. Jak wygenerować dla niego prawidłową wartość?
Jednym z pól naszej struktury jest typ Guid. Jak wygenerować dla niego prawidłową wartość?
Odpowiedzi:
Guid id = Guid.NewGuid();
Guid.NewGuid()
tworzy nowy losowy przewodnik.
Istnieją dwa sposoby
var guid = Guid.NewGuid();
lub
var guid = Guid.NewGuid().ToString();
oba używają klasy Guid, pierwszy tworzy Obiekt Guid, drugi ciąg Guid.
var guid = Guid.NewGuid().ToString()
po prostu zamienia go w ciąg.
Guid.NewGuid () utworzy taki
var guid = new Guid();
Hej, to „ważny”, choć niezbyt przydatny, Guid.
(jeśli nie wiesz, identyfikator GUID to same zera. Czasami jest to konieczne, aby wskazać brak GUID, w przypadkach, gdy nie chcesz używać zerowalnego GUID)
var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Aby utworzyć „puste” guid dla wszystkich 0 00000000-0000-0000-0000-000000000000
.
var makeAllZeroGuID = new System.Guid();
lub
var makeAllZeroGuID = System.Guid.Empty;
Aby stworzyć prawdziwy przewodnik z unikalną wartością, czego prawdopodobnie chcesz.
var uniqueGuID = System.Guid.NewGuid();
System.Guid desiredGuid = System.Guid.NewGuid();
Istnieje również ShortGuid - krótsza i przyjazna dla URL klasa GUID w języku C #. Jest dostępny jako Nuget . Więcej informacji tutaj .
PM> Install-Package CSharpVitamins.ShortGuid
Stosowanie:
Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);
Spowoduje to utworzenie nowego identyfikatora GUID, użycie tego identyfikatora do utworzenia ShortGuid i wyświetlenie dwóch równoważnych wartości w konsoli. Wyniki byłyby podobne do:
ShortGuid: FEx1sZbSD0ugmgMAF_RGHw
Guid: b1754c14-d296-4b0f-a09a-030017f4461f
Jeśli używasz tego w Reflection C #, możesz uzyskać identyfikator GUID z atrybutu właściwości w następujący sposób
var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
var myguid= Guid.Parse(attribute.Id.ToString());
}