C # як створити значення Guid?


Відповіді:


897
Guid id = Guid.NewGuid();

252
Якщо ви, як і я, помилитесь (новий Guid (). ToString ()), ви отримаєте 0000-00000-00000-00000. Вам потрібно зробити Guid.NewGuid (). ToString ()
Жоао Карлос

12
Можливо, вас зацікавить також форматування посібника 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 Object, другий - рядок Guid.


47
@ Джустін, це один із способів зробити це. var guid = Guid.NewGuid().ToString()просто перетворює його на рядок.
Майкл Медоуз

@MichaelMeadows Так, це правильно, перший створює новий Guid Object, другий створює рядок.
Джастін


34
var guid = new 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
Коли ви маєте передати настанову на код, то ви не володієте цим, що не приймає нульові настанови.

26

Щоб зробити "порожнім" все-0 керівництво, як 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 знаходиться в просторі імен системи дуже давно, і це те, на що згадуються всі інші в інших відповідях (просто трапляється так, що новий клас вже має додавання Використання для простору імен системи в області звичайний шаблон)
Skuld

18

Якщо ви хочете створити "бажаний" Посібник, який ви можете зробити

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

де <guidValue>було б щось подібне 1A3B944E-3632-467B-A53A-206305310BAE.


2

Існує також ShortGuid - коротший і URL-інтерфейс, клас 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);

Це створює нове керівництво, використовує це керівництво для створення ShortGuid і відображає два еквівалентних значення в консолі. Результати будуть такими:

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

0

Якщо ви використовуєте це в відображенні C #, ви можете отримати орієнтир з атрибута властивості наступним чином

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.