首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

.NET 中產生與應用 GUID 完整指南

     編輯:關於C#

GUID 基本認知

  • 定義:Globally Unique Identifier,128 位整數 (16 bytes),跨時空唯一。
  • 格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (32 個十六進位字元 + 4 連字號)。
  • 用途:資料庫主鍵、COM 介面識別、登錄表鍵值、分散式系統唯一標識。

.NET 產生 GUID

核心 API:System.Guid.NewGuid()

// C#
Guid g = Guid.NewGuid();
string s = g.ToString(); // "936DA01F-9ABD-4d9d-80C7-02AF85C822A8"

// VB.NET
Dim g As Guid = Guid.NewGuid()

// J#
System.Guid g = System.Guid.NewGuid();

實戰應用場景

1. 資料庫主鍵 (SQL Server)

// C# 參數化查詢範例
string sql = "INSERT INTO Users (UserID, Name) VALUES (@id, @name)";
using (var cmd = new SqlCommand(sql, conn))
{
    cmd.Parameters.AddWithValue("@id", Guid.NewGuid());
    cmd.Parameters.AddWithValue("@name", userName);
    cmd.ExecuteNonQuery();
}

SQL Server 對應型別為 uniqueidentifier,亦可用 NEWID() 函式在資料庫端產生。

2. COM Interop 介面識別

為 .NET 類別指定固定 GUID,供 COM 用戶端繫結:

[Guid("9245FE4A-D402-451C-B9ED-9C1A04247482")]
[ComVisible(true)]
public interface IMyComInterface { ... }

[Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890")]
[ClassInterface(ClassInterfaceType.None)]
public class MyComClass : IMyComInterface { ... }

3. 檔案/目錄命名避免衝突

string tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"));
Directory.CreateDirectory(tempDir);

進階:Guid 解析與格式化

Guid g = Guid.Parse("936DA01F-9ABD-4d9d-80C7-02AF85C822A8");
string n = g.ToString("N"); // 無連字號: 936DA01F9ABD4D9D80C702AF85C822A8
string b = g.ToString("B"); // 大括號: {936DA01F-9ABD-4d9d-80C7-02AF85C822A8}
string p = g.ToString("P"); // 小括號: (936DA01F-9ABD-4d9d-80C7-02AF85C822A8)
byte[] bytes = g.ToByteArray(); // 16 bytes 陣列
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved