C # как создать значение Guid?


Ответы:


897
Guid id = Guid.NewGuid();

252
Если вы, как и я, допустили ошибку при выполнении (new Guid (). ToString ()), вы получите 0000-00000-00000-00000. Вам нужно сделать Guid.NewGuid (). ToString ()
Жоао Карлос

12
Возможно, вас заинтересует форматирование Guid. Msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx
Анил Вангари

9
Небольшое исправление, в объекте Guid нет функции «toString ()», это «ToString ()»
AB


83

Есть два способа

var guid = Guid.NewGuid();

или

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

оба используют класс Guid, первый создает объект Guid, второй - строку Guid.


47
@ Justin, это один из способов сделать это. var guid = Guid.NewGuid().ToString()просто превращает это в строку.
Майкл Медоус

@MichaelMeadows Да, это правильно, первый создает новый объект Guid, второй создает строку.
Джастин


34
var guid = new Guid();

Эй, это «действительный», хотя и не очень полезный, Guid.

(Guid - это все нули, если вы не знаете. Иногда это необходимо, чтобы указать отсутствие guid, в тех случаях, когда вы не хотите использовать Guid, допускающий значение NULL)


Это не создает все нули. Это создает действительный Guid. Guid.Empty возвращает все нули.
FlavorScape

8
@FlavorScape, прежде чем вы попробуете, я держу пари на 50 повторений (через щедрость), вы ошибаетесь. Сделка?

я думал о Guid.NewGuid (). Я действительно хочу проверить новый Guid ()
FlavorScape

11
Я обыграл тебя на одно с этим решением:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Джеппе Стиг Нильсен

2
Когда вы должны передать guid для кода, которым вы не владеете, который не принимает nullable guid.

26

Чтобы сделать "пустой" все-0, как guid 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

или

var makeAllZeroGuID = System.Guid.Empty;

Чтобы сделать реальный гид с уникальным значением, что вы, вероятно, хотите.

var uniqueGuID = System.Guid.NewGuid(); 

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

Похоже, это новый способ сделать это, по крайней мере, с 2012 года. Мне кажется, у меня нет Guid.NewGuid (), доступного в 2015 году.
Дэйв Ярвуд,

2
@DaveYarwood Guid находится под пространством имен System в течение очень долгого времени, и это то, на что все остальные ссылаются в других ответах (просто так случается, что новый класс уже добавил использование для пространства имен System в нормальный шаблон)
Skuld

18

Если вы хотите создать «нужный» Guid, вы можете сделать

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

где <guidValue>было бы что-то вроде 1A3B944E-3632-467B-A53A-206305310BAE.


2

Есть также 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

0

Если вы используете это в Reflection C #, вы можете получить guid из атрибута свойства следующим образом

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

можно использовать alternatvity SCOPE.IDENTITY ()
sammer

28
C # выглядит совсем не так, как я помню.
Арчибальд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.