在 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