在 C# 中生成 UUID

Muhammad Zeeshan 2023年1月30日 2022年4月20日
  1. 通用唯一識別符號或 UUID
  2. C# 中生成 UUID
  3. C# 中的 GUID 格式
  4. C# 中的 GUID 識別符號
  5. C#GUID 的缺點
在 C# 中生成 UUID

本文將幫助我們瞭解 UUID 是什麼並在 C# 中生成它。

通用唯一識別符號或 UUID

通用唯一識別符號稱為 UUID。我們使用 GUID 進行唯一標識。

假設我們已經有一個 primary 鍵。在這種情況下,我們將使用 GUID,因為它是一個 128 位整數(16 位元組),重複風險低,允許它在所有資料庫和計算機上使用,避免資料衝突。

C# 中生成 UUID

.Net 框架包含用於在 C# 語言中建立版本 4 UUID 的內建功能。這是生成 UUID 的示例。

語法:

Guid MyUniqueId = Guid.NewGuid();

例子:

using System;
using System.Diagnostics;

namespace MyUUIDGeneration {
    class UUID {
        public static void Main(string[] args)
        {
            Guid myUUId = Guid.NewGuid();
            string convertedUUID = myUUId.ToString();
            Console.WriteLine("Current UUID is: " + convertedUUID);
        }
    }
}

輸出:

Current UUID is: 123z0987-d23b-43gd-s566-000414174266

我們將需要這些庫來執行我們上面的程式碼示例。

using System;
using System.Diagnostics;

我們部署了一種稱為 Guid.NewGuid() 的靜態方法來初始化一個名為 MyUniqueId 的新變數。在 .Net 中,GUID 等於 UUID

Guid myUUId = Guid.NewGuid();

要將 GUID 物件轉換為字串,我們使用 ToString() 函式。GUID 字串表示表示正常的 UUID

C# 中的 GUID 格式

GUID 是系統名稱空間中的一個結構。一串十六進位制整數是在語言中編寫 GUID 的最系統的方法。

像這樣的東西:{ 123z0987-d23b-43gd-s566-000414174266 }

C# 中的 GUID 識別符號

GUID 是這個獨一無二的識別符號的名稱。由 Windows 程式生成的 GUID 可用於確定某個專案、軟體、部件或儲存庫記錄。

考慮一個分散式系統,其中許多程式設計師獨立工作並生成 ID。兩個程式設計師可能會生成相同的 ID,從而在合併系統時出現問題。

因此,當我們有多個獨立系統或使用者生成必須唯一的 ID 時,我們必須使用 GUID。當我們在程式設計中構造一個介面或方法時,我們會分配一個唯一的 ID,用於呼叫它。

GUID 防止資料衝突。在各種機器、網路等之間整合資料庫很簡單。

它可以幫助你在插入記錄之前確定主鍵。這並不容易弄清楚。

C#GUID 的缺點

每個 GUID 都有優點和缺點。在具有 10,000 個條目的資料庫中,GUID 將佔用 160000 個位元組。

另一個不利點是其他表中的大多數 primary 鍵是 foreign 鍵。只有 GUID 在 5 個 FK 條目中佔用大約 60 個位元組,並且隨著時間的推移它成為效能問題的主要來源。

無序 技術會產生一個隨機的 GUID。作為插入時間戳,我們必須應用幾種排序方法。

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn