C#新GUID(對開發者如何理解的工作)
Guid 類別中的 NewGuid() 方法 常用於建立全球唯一的識別碼 (GUID)。 GUID 是 128 位元的整數,可在所有電腦和網路中使用,以唯一方式識別資訊,而不會有重複的風險。 本文將深入介紹如何在 C# 中使用 GUID(全球唯一 IDentifiers),著重於實際用途、範例和程式碼片段。 我們也將探討 IronPDF 函式庫。
什麼是 GUID?
GUID(全球唯一識別碼)是軟體開發中使用的唯一識別碼。 在 .NET Framework 中,GUID 在 System 命名空間中表示為一個 Guid 結構。 GUID 通常用於資料庫的主索引鍵,也用於其他系統中的其他用途,在這些系統中,各系統之間都需要唯一的識別碼。
Generating GUIDs in C#
若要在 C# 中產生新的 GUID,可以使用 Guid.NewGuid() 函數。 此方法會建立 GUID 物件的新實體,並確保產生的每個 GUID 都是唯一的。 內部使用隨機數字產生器產生 GUID,以確保沒有兩個 GUID 具有相同的值。
以下是一個產生新 GUID 的簡單程式碼範例:
using System;
class Program
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Output the newly generated GUID to the console
Console.WriteLine(newGuid);
}
}
using System;
class Program
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Output the newly generated GUID to the console
Console.WriteLine(newGuid);
}
}
Imports System
Friend Class Program
Shared Sub Main()
' Generate a new GUID
Dim newGuid As Guid = Guid.NewGuid()
' Output the newly generated GUID to the console
Console.WriteLine(newGuid)
End Sub
End Class
在這段程式碼中,Guid.NewGuid() 方法使用內部的隨機數產生器建立新的 GUID,而 Console.WriteLine 將新產生的 GUID 輸出到控制台。
GUID 結構與格式
GUID 由 32 個十六進位數字組成,通常以 8-4-4-4-12 的格式顯示(例如,e02fd0e4-00fd-090A-ca30-0d00a0038ba0)。 當使用 ToString() 方法轉換為字串時,GUID 將以這種格式表示。 此表示法可讓您輕鬆地將 GUID 儲存在以文字為基礎的格式中,例如 JSON、XML 或資料庫。
下面的程式碼範例顯示如何將 GUID 轉換成字串:
using System;
class Example
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Convert the GUID to a string
string guidString = newGuid.ToString();
// Output the GUID string
Console.WriteLine(guidString);
}
}
using System;
class Example
{
static void Main()
{
// Generate a new GUID
Guid newGuid = Guid.NewGuid();
// Convert the GUID to a string
string guidString = newGuid.ToString();
// Output the GUID string
Console.WriteLine(guidString);
}
}
Imports System
Friend Class Example
Shared Sub Main()
' Generate a new GUID
Dim newGuid As Guid = Guid.NewGuid()
' Convert the GUID to a string
Dim guidString As String = newGuid.ToString()
' Output the GUID string
Console.WriteLine(guidString)
End Sub
End Class
此代碼會將 GUID 轉換成字串並輸出。
解析 GUID 字串
有時候,您可能需要將字串解析回 GUID 物件。 這是使用 Guid.Parse() 方法完成的。 如果字串格式正確,則會解析為 GUID 實例。 如果格式不正確,將會產生異常。
以下是一個程式碼範例:
using System;
class ParseExample
{
static void Main()
{
// Define a GUID string
string guidString = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0";
// Convert the string back into a GUID object
Guid parsedGuid = Guid.Parse(guidString);
// Output the parsed GUID
Console.WriteLine(parsedGuid);
}
}
using System;
class ParseExample
{
static void Main()
{
// Define a GUID string
string guidString = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0";
// Convert the string back into a GUID object
Guid parsedGuid = Guid.Parse(guidString);
// Output the parsed GUID
Console.WriteLine(parsedGuid);
}
}
Imports System
Friend Class ParseExample
Shared Sub Main()
' Define a GUID string
Dim guidString As String = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0"
' Convert the string back into a GUID object
Dim parsedGuid As Guid = Guid.Parse(guidString)
' Output the parsed GUID
Console.WriteLine(parsedGuid)
End Sub
End Class
在這段程式碼中,Guid.Parse() 方法將字串轉換回 GUID 物件。
比較兩個 GUID。
可以比較 GUID 是否相等。 Guid 結構體實作了相等運算子(==),因此可以直接比較兩個 GUID 物件。
以下是一個範例:
using System;
class CompareExample
{
static void Main()
{
// Generate two new GUIDs
Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
// Compare the two GUIDs
if (guid1 == guid2)
{
Console.WriteLine("The two GUIDs are the same.");
}
else
{
Console.WriteLine("The two GUIDs are different.");
}
}
}
using System;
class CompareExample
{
static void Main()
{
// Generate two new GUIDs
Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
// Compare the two GUIDs
if (guid1 == guid2)
{
Console.WriteLine("The two GUIDs are the same.");
}
else
{
Console.WriteLine("The two GUIDs are different.");
}
}
}
Imports System
Friend Class CompareExample
Shared Sub Main()
' Generate two new GUIDs
Dim guid1 As Guid = Guid.NewGuid()
Dim guid2 As Guid = Guid.NewGuid()
' Compare the two GUIDs
If guid1 = guid2 Then
Console.WriteLine("The two GUIDs are the same.")
Else
Console.WriteLine("The two GUIDs are different.")
End If
End Sub
End Class
在此程式碼中,兩個 GUID 會進行比較。 由於 Guid.NewGuid() 產生的每個 GUID 都是唯一的,因此結果通常會是"這兩個 GUID 不同"。
使用 GUID 時的常見錯誤
1.假設 GUID 是連續的: GUID 是隨機的,而 NewGuid() 方法不會產生連續的值。 因此,您不應假設 GUID 會維持任何一種順序。
2.以字串比較取代 GUID 比較:以字串比較 GUID 可能效率不高。 務必直接比較 GUID 物件,而非將其轉換為字串並比較字串值。
3.在大型資料庫中使用 GUID 而不建立索引:GUID 可能很大,如果不適當建立索引,可能會影響大型資料庫的效能。 使用 GUID 列作為主索引鍵時,請確保它們已被索引。
.NET Core 和 Framework 中的 GUID。
.NET Framework 和 .NET Core 均支援 GUID。 Guid 類的用法在不同版本的 .NET 平台上保持一致。 因此,使用任何版本的 .NET 的開發人員都可以使用 Guid.NewGuid() 方法輕鬆產生 GUID。
GUID 與 UUID
GUID 類似於 UUID(Universally Unique Identifiers,通用唯一識別碼),這兩個詞通常可以交替使用。 雖然在規格上有一些微小的差異,但它們都是為了產生唯一識別碼的相同目的。
使用 IronPDF 與 GUID

IronPDF 是一個 PDF 函式庫,用於在 .NET 應用程式中 從 HTML 產生 PDF 以及其他 PDF 作業。 當您需要為 PDF 文件產生唯一的檔案名稱時,您可以將 IronPDF 與 GUID 相結合。 這可確保產生的每個 PDF 都有唯一的名稱,防止任何檔案覆寫或命名衝突。 以下是一個使用 IronPDF 與新 GUID 的簡單範例:
using System;
using IronPdf;
class Program
{
static void Main()
{
// Generate a new GUID object for the PDF filename
Guid pdfId = Guid.NewGuid();
string filename = $"{pdfId}.pdf";
// Create a PDF document using IronPDF
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
// Save the PDF with the unique filename
pdfDocument.SaveAs(filename);
Console.WriteLine($"PDF saved as: {filename}");
}
}
using System;
using IronPdf;
class Program
{
static void Main()
{
// Generate a new GUID object for the PDF filename
Guid pdfId = Guid.NewGuid();
string filename = $"{pdfId}.pdf";
// Create a PDF document using IronPDF
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
// Save the PDF with the unique filename
pdfDocument.SaveAs(filename);
Console.WriteLine($"PDF saved as: {filename}");
}
}
Imports System
Imports IronPdf
Friend Class Program
Shared Sub Main()
' Generate a new GUID object for the PDF filename
Dim pdfId As Guid = Guid.NewGuid()
Dim filename As String = $"{pdfId}.pdf"
' Create a PDF document using IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
' Save the PDF with the unique filename
pdfDocument.SaveAs(filename)
Console.WriteLine($"PDF saved as: {filename}")
End Sub
End Class
在 Visual Studio 中執行上述程式碼並觀察輸出。

我們使用 Guid.NewGuid() 為每個 PDF 檔案產生一個唯一的隨機 GUID。該 GUID 會被轉換為字串並用作檔案名稱。
結論

在這篇文章中,我們介紹了 C# 中 GUID 的基本知識。 您已經看到如何產生新的 GUID、比較它們、從字串解析它們,以及在資料庫等實際情境中使用它們。 Guid.NewGuid() 方法可以輕鬆產生 GUID 的新實例,確保每個識別碼在各個系統中都是唯一的。 在 .NET 中工作的開發人員可以依賴 GUID 在其應用程式中提供隨機性和唯一性。
IronPDF 深知在投資前進行測試的重要性,因此我們提供 免費試用。 您可以免費評估該軟體的效能。如果您覺得它有用,許可證起價為 $999。
常見問題解答
如何在 C# 中生成新的 GUID?
在 C# 中,可以使用 Guid.NewGuid() 方法生成新的 GUID。此函數創建 GUID 對象的新實例,確保每個生成的 GUID 都是唯一的。
C# 中 GUID 的一些實際用途是什麼?
C# 的 GUID 可用於為數據庫條目創建唯一標識符、為文檔生成唯一的文件名,以及在分布式系統中確保唯一性。
如何使用 GUID 管理 PDF 文件名?
可以將 GUID 與 PDF 生成庫集成,以創建 PDF 的唯一文件名。這可以防止命名衝突並確保每個文檔都有一個獨特的標識符。
GUID 與 UUID 的區別是什麼?
GUID 和 UUID 本質上是一樣的,都是用於生成唯一標識符。它們在軟件開發中通常可以互換使用。
可以將 GUID 轉換為 C# 中的字串嗎?
是的,可以在 C# 中使用 ToString() 方法將 GUID 轉換為字串。
如何在 C# 中從字串解析 GUID?
要在 C# 中從字串解析 GUID,請使用 Guid.Parse() 方法。確保字串格式正確以避免例外。
GUID 如何改善數據庫管理?
在數據庫中,GUID 可用作主鍵,以確保每條記錄都是唯一可識別的,特別是在多個系統之間同步數據時。
使用 C# 中的 GUID 常見的錯誤是什麼?
常見錯誤包括假設 GUID 是順序的、將 GUID 作為字串比較而非直接比較,以及在大型數據庫中未使用適當的索引。
如何在 C# 中比較兩個 GUID?
可以在 C# 中使用等號運算符 (==) 來比較兩個 GUID,這可以幫助檢查兩個 GUID 是否相同或不同。



