在.net2.0中,Guid結構體表示一個全局惟一標識符,是一個在生成時就能夠確定爲全世界惟一的16字節值。Guid在數據庫中一般能夠做爲各類排序的主鍵。好比shell
1 public class Company 2 { 3 public Guid id { get; set; } 4 ...... 5 }
其中Guid能夠表示值範圍總共有2128或者3.4x1018個值。數據庫
能夠調用靜態的Guid.newGuid方法創件一個新的惟一的Guid;數組
在vs code裏直接dotnet new console -n test建立控制檯項目,寫入測試代碼:數據結構
1 using System; 2 using static System.Guid; 3 using static System.Console; 4 namespace test 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 Guid newGuid1 = Guid.NewGuid(); 11 WriteLine(newGuid1.ToString()); 12 } 13 } 14 }
而後在powershell裏cd test,進行dotnet build及dotnet run;app
PS C:\Users\huang\source\repos\數據結構\Guid> dotnet build 用於 .NET Core 的 Microsoft (R) 生成引擎版本 16.4.0+e901037fe 版權全部(C) Microsoft Corporation。保留全部權利。 C:\Users\huang\source\repos\數據結構\Guid\Guid.csproj 的還原在 35.37 ms 內完成。 Guid -> C:\Users\huang\source\repos\數據結構\Guid\bin\Debug\netcoreapp3.1\Guid.dll 已成功生成。 0 個警告 0 個錯誤 已用時間 00:00:01.10 PS C:\Users\huang\source\repos\數據結構\Guid> dotnet run 664a92a8-70cd-46ec-b8e5-f7aba10d6127 PS C:\Users\huang\source\repos\數據結構\Guid>
可看到生成了一個16字節值。測試
固然,也能夠直接使用構造器實例化一個現有的Guid,好比ui
class Guid1{ int _x; public Guid(int x) { _x = x; } } }
當以字符串形式出現時,Guid是一個由32個16進制數字表示。spa
Guid newGuid2 = Guid.NewGuid("664a92a8-70cd-46ec-b8e5-f7aba10d6127");
Guid是一個結構體,支持值類型的語義,Guid有一個ToByteArray方法能夠將其轉換爲一個字節數組,其中Guid.Empty靜態屬性能夠返回一個空的Guid,一般用來表示null。.net