Одним из полей нашей структуры является тип Guid. Как создать действительное значение для него?
Одним из полей нашей структуры является тип Guid. Как создать действительное значение для него?
Ответы:
Guid id = Guid.NewGuid();
Guid.NewGuid()
создает новый случайный гид.
Есть два способа
var guid = Guid.NewGuid();
или
var guid = Guid.NewGuid().ToString();
оба используют класс Guid, первый создает объект Guid, второй - строку Guid.
var guid = Guid.NewGuid().ToString()
просто превращает это в строку.
Guid.NewGuid () создаст
var guid = new Guid();
Эй, это «действительный», хотя и не очень полезный, Guid.
(Guid - это все нули, если вы не знаете. Иногда это необходимо, чтобы указать отсутствие guid, в тех случаях, когда вы не хотите использовать Guid, допускающий значение NULL)
var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Чтобы сделать "пустой" все-0, как guid 00000000-0000-0000-0000-000000000000
.
var makeAllZeroGuID = new System.Guid();
или
var makeAllZeroGuID = System.Guid.Empty;
Чтобы сделать реальный гид с уникальным значением, что вы, вероятно, хотите.
var uniqueGuID = System.Guid.NewGuid();
System.Guid desiredGuid = System.Guid.NewGuid();
Есть также ShortGuid - более короткий и удобный для GUID класс GUID в C #. Это доступно как Nuget . Больше информации здесь .
PM> Install-Package CSharpVitamins.ShortGuid
Применение:
Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);
Это создает новый guid, использует этот guid для создания ShortGuid и отображает два эквивалентных значения в консоли. Результаты будут примерно такими:
ShortGuid: FEx1sZbSD0ugmgMAF_RGHw
Guid: b1754c14-d296-4b0f-a09a-030017f4461f
Если вы используете это в Reflection C #, вы можете получить guid из атрибута свойства следующим образом
var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
var myguid= Guid.Parse(attribute.Id.ToString());
}