跳至页脚内容
.NET 帮助

C# 新 GUID(开发者用法)

在默认情况下,Guid 类中的 NewGuid() 方法通常用于创建全局唯一标识符(GUID)。 GUID 是一个 128 位的整数,可以跨所有计算机和网络使用,以唯一标识信息而无需担心重复。 本文将详细介绍如何在 C# 中使用 GUID(全局唯一标识符),重点介绍其实用性、示例和代码片段。 我们还将探索 IronPDF 库

什么是 GUID?

GUID(全局唯一标识符)是用于软件开发的唯一标识符。 在 .NET 框架中,GUID 以 System 命名空间内的 Guid 结构表示。 GUID 经常用作数据库中的主键,也用于需要跨系统唯一标识符的其他系统。

在 C# 中生成 GUID

要在 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
$vbLabelText   $csharpLabel

在此代码中,Guid.NewGuid() 方法通过内部使用随机数生成器创建新 GUID,而 Console.WriteLine 将新生成的 GUID 输出到控制台。

GUID 结构和格式

GUID 由 32 个十六进制数字组成,通常以 8-4-4-4-12 的格式显示(例如,e02fd0e4-00fd-090A-ca30-0d00a0038ba0)。 当使用 ToString() 方法转换为字符串时,GUID 以此格式表示。 这种表示方式使得在 JSON、XML 或数据库等基于文本的格式中存储 GUID 变得容易。

下面的代码示例展示了如何将 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
$vbLabelText   $csharpLabel

此代码将 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
$vbLabelText   $csharpLabel

在此代码中,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
$vbLabelText   $csharpLabel

在此代码中,两个 GUID 被比较。 由于每个由 Guid.NewGuid() 生成的 GUID 都是唯一的,因此结果通常是“两个 GUID 是不同的”。

使用 GUID 时的常见错误

  1. 假设 GUID 是顺序的: GUID 是随机的,NewGuid() 方法不会生成顺序值。 因此,您不应假设 GUID 会保持任何顺序。

  2. 字符串比较而不是 GUID 比较: 将 GUID 作为字符串进行比较可能效率不高。 始终直接比较 GUID 对象,而不是将其转换为字符串并比较字符串值。

  3. 在大型数据库中使用未索引的 GUID: 如果未正确索引,GUID 可能较大,可能会影响大型数据库的性能。 确保在将 GUID 作为主键使用时对其列进行索引。

.NET Core 和 Framework 中的 GUID

GUID 在 .NET Framework 和 .NET Core 中都受支持。 Guid 类的使用在 .NET 平台的不同版本之间保持一致。 因此,使用任何版本的 .NET 的开发人员都可以轻松地使用 Guid.NewGuid() 方法生成 GUID。

GUID 与 UUID

GUID 类似于 UUID(通用唯一标识符),这两个术语通常可以互换使用。 尽管在规范上有一些小的差异,但它们的功能都是生成唯一标识符。

在 IronPDF 中使用 GUID

C# New GUID(如何为开发人员工作):图 1 - IronPDF

IronPDF 是一个 PDF 库,用于从 HTML 生成 PDF 以及在 .NET 应用程序中进行其他 PDF 操作。 当您需要为 PDF 文档生成唯一的文件名时,可以将 IronPDF 与 GUID 结合使用。 这确保了每个生成的 PDF 都有一个唯一的名称,从而防止任何文件覆盖或命名冲突。 这是一个使用 GUID 的 IronPDF 的简单示例:

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
$vbLabelText   $csharpLabel

在 Visual Studio 中运行上述代码并观察输出。

C# New GUID(如何为开发人员工作):图 2 - Visual Studio 控制台输出

我们使用 Guid.NewGuid() 为每个 PDF 文件创建一个唯一的随机 GUID。此 GUID 被转换为字符串并用作文件名。

结论

C# New GUID(如何为开发人员工作):图 3 - 许可

在本文中,我们已经介绍了 C# 中的 GUID 基础知识。 您已经了解了如何生成新的 GUID,比较它们,从字符串中解析它们,以及在诸如数据库的实际场景中使用它们。 Guid.NewGuid() 方法使得可以轻松生成 GUID 的新实例,确保每个标识符在系统间唯一。 在 .NET 中工作的开发人员可以依靠 GUID 为其应用程序提供随机性和唯一性。

IronPDF 理解在投资之前进行测试的重要性,这就是为什么我们提供免费试用。 您可以免费评估软件性能。如果您觉得有用,许可证起价$799。

常见问题解答

如何在 C# 中生成新的 GUID?

在 C# 中,你可以使用 Guid.NewGuid() 方法生成一个新的 GUID。这一函数创建一个 GUID 对象的新实例,确保每个生成的 GUID 是唯一的。

GUID 在 C# 中有哪些实际用途?

在 C# 中,GUID 可用于为数据库条目创建唯一标识符,为文档生成唯一的文件名,确保分布式系统中的唯一性。

如何使用 GUID 来管理 PDF 文件名?

GUID 可以与 PDF 生成库集成,以创建 PDF 的唯一文件名。这避免了命名冲突,并确保每个文档都有一个独特的标识符。

GUID 和 UUID 有什么区别?

GUID 和 UUID 本质上是相同的,都是用于生成唯一标识符的,常在软件开发中互换使用。

你能在 C# 中将 GUID 转换为字符串吗?

是的,你可以在 C# 中通过对 GUID 对象使用 ToString() 方法来将其转换为字符串。

如何从字符串中解析 C# 中的 GUID?

要从字符串中解析 C# 中的 GUID,使用 Guid.Parse() 方法。确保字符串的格式正确以避免异常。

GUID 如何改善数据库管理?

在数据库中,GUID 可以用作主键,以确保每条记录都是唯一可识别的,特别是在跨多个系统同步数据时。

使用 C# 中的 GUID 的常见错误是什么?

常见错误包括假设 GUID 是顺序的,将 GUID 作为字符串进行比较而不是直接比较,以及在大型数据库中不使用正确的索引。

如何在 C# 中比较两个 GUID?

你可以在 C# 中使用等于运算符 (==) 比较两个 GUID。这允许你检查两个 GUID 是否相同或不同。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。