برای ایجاد و استفاده از UUID در زبان برنامهنویسی CSharp از ساختار Guid موجود در کتابخانه System استفاده میشود:
1public static Guid NewGuid()
2{
3 return Guid.NewGuid();
4}
guid ایجاد شده در این روش از نوع و نسخه چهارم UUID است و به صورت تصادفی تولید میشود. برای تولید guid به صورت ترتیبی میتوان از کد زیر استفاده نمود:
1public static Guid NewSequentialGuid()
2{
3 var uid = Guid.NewGuid().ToByteArray();
4 var binDate = BitConverter.GetBytes(DateTime.UtcNow.Ticks);
5
6 var secuentialGuid = new byte[uid.Length];
7
8 secuentialGuid[0] = uid[0];
9 secuentialGuid[1] = uid[1];
10 secuentialGuid[2] = uid[2];
11 secuentialGuid[3] = uid[3];
12 secuentialGuid[4] = uid[4];
13 secuentialGuid[5] = uid[5];
14 secuentialGuid[6] = uid[6];
15
16 // set the first part of the 8th byte to '1100' so
17 // later we'll be able to validate it was generated by us
18
19 secuentialGuid[7] = (byte)(0xc0 | (0xf & uid[7]));
20
21 // the last 8 bytes are sequential,
22 // it minimizes index fragmentation
23 // to a degree as long as there are not a large
24 // number of Secuential-Guids generated per millisecond
25
26 secuentialGuid[9] = binDate[0];
27 secuentialGuid[8] = binDate[1];
28 secuentialGuid[15] = binDate[2];
29 secuentialGuid[14] = binDate[3];
30 secuentialGuid[13] = binDate[4];
31 secuentialGuid[12] = binDate[5];
32 secuentialGuid[11] = binDate[6];
33 secuentialGuid[10] = binDate[7];
34
35 return new Guid(secuentialGuid);
36}
برای بررسی رشتهای که حاوی guid است به ساختار guid میتوان از کد زیر استفاده نمود:
1public static bool IsGuid(string guidString)
2{
3 return Guid.TryParse(guidString, out _);
4}
برای بررسی اینکه آیا مقدار guid مورد نظرتان یک guid خالی است یا خیر میتوان از کد زیر استفاده نمود:
1public static bool IsEmptyGuid(Guid guid)
2{
3 return guid == Guid.Empty;
4}