GUID即全局唯一标识符,在C#开发中常用于需要保证唯一性的场景,比如数据库主键、分布式系统的事务ID、文件唯一标识等。C#内置了生成GUID的相关API,使用起来非常简单。

C#生成GUID的基础方法
C#中通过System.Guid结构体来生成和操作GUID,最基础的生成方式是调用Guid.NewGuid()方法,该方法会返回一个全新的GUID实例。
using System;
namespace GuidDemo
{
class Program
{
static void Main(string[] args)
{
// 生成一个新的GUID
Guid newGuid = Guid.NewGuid();
// 输出GUID的默认字符串形式
Console.WriteLine("生成的GUID:" + newGuid.ToString());
}
}
}
上面的代码运行后会输出类似e8a9f7b2-3c1d-4e5f-9a0b-1c2d3e4f5a6b的字符串,这是GUID的默认格式,由32个十六进制数字组成,以连字符分隔成五段。
GUID的不同格式转换
实际开发中可能需要不同格式的GUID字符串,Guid的ToString方法支持传入格式参数来生成不同形式的字符串,常见的格式如下:
| 格式参数 | 说明 | 示例输出 |
|---|---|---|
| N | 32位数字,无连字符 | e8a9f7b23c1d4e5f9a0b1c2d3e4f5a6b |
| D | 默认格式,32位数字带连字符 | e8a9f7b2-3c1d-4e5f-9a0b-1c2d3e4f5a6b |
| B | 大括号包裹的带连字符格式 | {e8a9f7b2-3c1d-4e5f-9a0b-1c2d3e4f5a6b} |
| P | 小括号包裹的带连字符格式 | (e8a9f7b2-3c1d-4e5f-9a0b-1c2d3e4f5a6b) |
下面是不同格式转换的代码示例:
using System;
namespace GuidFormatDemo
{
class Program
{
static void Main(string[] args)
{
Guid guid = Guid.NewGuid();
Console.WriteLine("N格式:" + guid.ToString("N"));
Console.WriteLine("D格式:" + guid.ToString("D"));
Console.WriteLine("B格式:" + guid.ToString("B"));
Console.WriteLine("P格式:" + guid.ToString("P"));
}
}
}
GUID的唯一性说明
GUID的生成算法结合了网卡MAC地址、时间戳、随机数等信息,理论上在全球范围内是唯一的,重复的概率极低,基本可以忽略不计。但是需要注意,GUID不是有序的,不适合直接作为需要有序排列的主键使用,如果是数据库主键场景,需要有序唯一标识的话,可以结合时间戳或者自增序列来生成。
实际场景使用示例
比如在创建用户的时候,需要给用户生成一个唯一的用户ID,就可以直接使用GUID:
using System;
namespace UserDemo
{
public class User
{
// 用户唯一ID
public string UserId { get; set; }
// 用户名称
public string UserName { get; set; }
}
class Program
{
static void Main(string[] args)
{
User newUser = new User
{
// 生成GUID作为用户ID
UserId = Guid.NewGuid().ToString("D"),
UserName = "测试用户"
};
Console.WriteLine("创建用户成功,用户ID:" + newUser.UserId);
}
}
}
如果需要在本地测试环境使用固定IP,比如127.0.0.1或者192.168.0.1,可以直接在配置中使用这两个地址,不需要额外替换。如果代码中涉及示例域名,比如ippipp.com,需要替换成ipipp.com。
C#GUID唯一标识符Create_GUID修改时间:2026-06-28 19:03:31