首页 编程语言 C# 认识 System.Guid

C# 认识 System.Guid

GUID:全局唯一标识符 (Globally Unique Identifier,共32位,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字)
格 式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
例 如:0d9d526e-77c4-46bc-9955-6c0e95bc176e

为什么要使用 GUID ?

GUID主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。它的总数达到了 2^128 (3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如注册表项、类及接口标识、数据库、系统目录等对象。


var cdk = System.Guid.NewGuid();//生成32位唯一标识:8-4-4-4-12
Console.WriteLine(cdk.ToString("N")); // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Console.WriteLine(cdk.ToString("D")); // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Console.WriteLine(cdk.ToString("B")); // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Console.WriteLine(cdk.ToString("P")); // (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Console.WriteLine(cdk); // 默认D格式化

string str = "0d9d526e77c446bc99556c0e95bc176e";
Console.WriteLine(new Guid(str)); // 0d9d526e-77c4-46bc-9955-6c0e95bc176e
Console.WriteLine(Guid.Parse(str)); // 0d9d526e-77c4-46bc-9955-6c0e95bc176e

站心网

GUID:全局唯一标识符 (Globally Unique Identifier,共32位,其中每个 x 是 0-9 或 a-f 范围内的一个十六..

为您推荐

SQL Server 中存储 GUID:选择 uniqueidentifier 还是 nvarchar?最佳实践解析

在 SQL Server 中存储 GUID 时,选择 uniqueidentifier 还是 nvarchar?本文深入分析两者的差异,探讨性能、存储和索引的影响,提供最佳实践建议,帮助你优化数据库设计。1. uniqueidentifier 与 nvarchar 的基本区..

使用System.Linq.Dynamic.Core扩展库动态构建 LINQ 查询

System.Linq.Dynamic.Core 是一个扩展库,用于在运行时动态构建 LINQ 查询,支持字符串形式的表达式解析和动态查询操作。它是 .NET 的一个强大工具,适合处理需要灵活定义查询逻辑的场景,例如动态过滤、排序、投影..

C#13新特性 使用System.Threading.Lock简化线程同步

C# 13 引入了新的线程同步类型 System.Threading.Lock,它通过作用域管理的方式简化了锁的使用,使代码更加清晰可靠。本文将全面介绍 System.Threading.Lock 的功能、适用场景,并提供完整的运行示例程序。1. 什么是..

.NET 9 中System.Text.Json 的新增功能

在 .NET 9 中,System.Text.Json 进行了多个重要的更新和增强,进一步提升了 JSON 处理的性能、灵活性和易用性。以下是 .NET 9 中 System.Text.Json 的一些主要新增功能:1. 类型转换器 (Type Converters) 支持.NET ..

.NET Core SkiaSharp替代System.Drawing的用法

在.NET 6中,微软官方建议把 System.Drawing.Common迁移到SkiaSharp库。因为System.Drawing.Common被设计为Window 技术的精简包装器,因此其跨平台实现欠佳。SkiaSharp是一个基于谷歌的Skia图形库(Skia.org)的用于..

.NET Core中使用System.Drawing处理图像

将.NET Framework的代码迁移到.NET Core的时候发现System.Drawing命名空间下的代码编译会报错。从官网查看到需要安装System.Drawing.Common包,我安装的时候最新版本是6.0.0。安装完成后原来的代码可以正常编译了。..

System.InvalidOperationException:“Unable to configure HTTPS endpoint.异常处理

.NET Core网站按F5运行时,在Program.cs里运行到app.Run()的时候报错:System.InvalidOperationException:“Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer ..

.NET Core复制文件到指定目录

在.NET Core中,你可以使用System.IO命名空间下的File类来复制文件到指定目录。C#复制文件到指定目录下面是一个示例代码:using System.IO;public class Program{public static void Main(){string sourceFilePath =..

.NET自带消息队列System.Threading.Channels用法

.NET System.Threading.Channels 是 .NET 中用于支持异步数据传输的库。它提供了一种高效、可扩展的方式来在生产者和消费者之间传递数据,适用于处理异步操作和并发问题。System.Threading.Channels 可以用作消息队..

.NET8 AOT报错:System.IO.FileNotFoundException: Could not find file 'Microsoft.AspNetCore'

AOT在Visual Studio中运行是没有问题,但要采用默认的发布配置就会报错。首先,如果采用默认发布,目标运行时的默认配置是“可移植”,会报一个错,如下图:我们知道AOT机制是生成本机执行码,所以这里的&..

.NET缓存库System.Cache用法

.NET System.Cache 缓存库提供了最基本的缓存功能,包括:缓存数据的存储和检索缓存数据的过期缓存数据的删除以下是使用 System.Cache 缓存库的基本步骤:创建一个缓存对象。将数据存储到缓存中。从缓存中检索数据。..

C#使用System.Speech朗读文本

System.Speech 命名空间提供了在 WinForms 应用程序中进行语音合成(TTS)的功能。您可以使用 System.Speech 中的类和方法来读取文本并将其转换为语音。nuget 安装System.Speech常用属性和方法以下是 System.Speech ..

System.Net.WebException:请求被中止: 未能创建 SSL/TLS 安全通道

C# WebClient.DownloadData报错 System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。这个错误通常表示在尝试建立 SSL/TLS 安全通道时出现了问题。这可能是由于以下原因之一导致的:目标服务器不支持..

System.UriFormatException: Invalid URI: The Uri string is too long.

System.UriFormatException: Invalid URI: The Uri string is too long. at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions) at System.Uri..ctor(S..

System.ArgumentOutOfRangeException: Token 2000000 is not valid in the scope of module System.ModuleHandle. (Parameter 'typeToken')

运行.NET Core MVC站点的时候报错:System.ArgumentOutOfRangeException: Token 2000000 is not valid in the scope of module System.ModuleHandle. (Parameter 'typeToken')这个异常通常在 .NET 平台中出现,特别..

EF报错System.Exception: You need to call SQLitePCL.raw.SetProvider().

使用EntityFrameworkCore.Sqlite时报错了,System.Exception: 'You need to call SQLitePCL.raw.SetProvider(). If you are using a bundle package, this is done by calling SQLitePCL.Batteries.Init().'..

systemctl:替换现代 Linux 上的 chkconfig 命令

chkconfig 是类 Unix 操作系统中使用的命令行实用程序,用于管理系统启动时自动启动哪些服务。chkconfig 工具广泛用于较旧的 Linux 发行版,例如 CentOS 6 及更早版本。 chkconfig 允许管理员轻松启用或禁用不同运行..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制