Passer au contenu du pied de page
.NET AIDE

C# Nouvelle GUID (Comment ça fonctionne pour les développeurs)

La méthode NewGuid() dans une classe Guid est couramment utilisée pour créer un identifiant unique global (GUID). Un GUID est un entier de 128 bits qui peut être utilisé sur tous les ordinateurs et réseaux pour identifier des informations de manière unique sans risque de duplications. Cet article fournira un guide approfondi sur la façon de travailler avec les GUIDs (Identifiants Uniques Globaux) en C#, en se concentrant sur les utilisations pratiques, les exemples et les extraits de code. Nous explorerons également la bibliothèque IronPDF.

Qu'est-ce qu'un GUID ?

Un GUID (Identifiant Unique Global) est un identifiant unique utilisé dans le développement logiciel. Dans le framework .NET, les GUIDs sont représentés sous forme de structure Guid dans le namespace System. Les GUIDs sont souvent utilisés comme clés primaires dans les bases de données, ainsi que pour d'autres fins dans d'autres systèmes où des identificateurs uniques sont nécessaires à travers les systèmes.

Génération de GUIDs en C#

Pour générer un nouveau GUID en C#, la fonction Guid.NewGuid() est utilisée. Cette méthode crée une nouvelle instance d'un objet GUID et garantit que chaque GUID généré est unique. En interne, les GUIDs sont générés à l'aide d'un générateur de nombres aléatoires pour garantir qu'aucun deux GUIDs n'ont la même valeur.

Voici un simple exemple de code pour générer un nouveau 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

Dans ce code, la méthode Guid.NewGuid() crée un nouveau GUID en utilisant en interne un générateur de nombres aléatoires, et Console.WriteLine affiche le GUID nouvellement généré sur la console.

Structure et format d'un GUID

Un GUID se compose de 32 chiffres hexadécimaux, généralement affichés dans un format de 8-4-4-4-12 (par exemple, e02fd0e4-00fd-090A-ca30-0d00a0038ba0). Lorsqu'il est converti en chaîne en utilisant la méthode ToString(), le GUID est représenté dans ce format. Cette représentation rend facile le stockage des GUIDs dans des formats basés sur du texte, tels que JSON, XML ou les bases de données.

L'exemple de code ci-dessous montre comment convertir un GUID en chaîne :

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

Ce code convertit le GUID en chaîne et l'affiche.

Analyse des chaînes de GUID

Parfois, vous pouvez avoir besoin d'analyser une chaîne pour la convertir en un objet GUID. Ceci est fait en utilisant la méthode Guid.Parse(). Si la chaîne est au format correct, elle sera analysée en une instance de GUID. Si le format est incorrect, une exception sera déclenchée.

Voici un exemple de code :

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

Dans ce code, la méthode Guid.Parse() convertit la chaîne en objet GUID.

Comparer deux GUIDs

Les GUIDs peuvent être comparés pour voir s'ils sont égaux ou non. La structure Guid implémente l'opérateur d'égalité (==), de sorte que vous pouvez comparer directement deux objets GUID.

Voici un exemple :

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

Dans ce code, les deux GUIDs sont comparés. Puisque chaque GUID généré par Guid.NewGuid() est unique, le résultat sera généralement "Les deux GUIDs sont différents."

Erreurs courantes lors de l'utilisation des GUIDs

  1. Supposer que les GUIDs sont séquentiels : Les GUIDs sont aléatoires, et la méthode NewGuid() ne génère pas de valeurs séquentielles. Par conséquent, vous ne devez pas supposer que les GUIDs maintiendront une certaine sorte d'ordre.

  2. Comparaisons de chaînes au lieu de comparaisons de GUIDs : Comparer des GUIDs en tant que chaînes peut être inefficace. Comparez toujours les objets GUIDs directement plutôt que de les convertir en chaînes et de comparer les valeurs des chaînes.

  3. Utilisation des GUIDs dans de grandes bases de données sans indexation : Les GUIDs peuvent être volumineux et peuvent avoir un impact sur la performance dans de grandes bases de données s'ils ne sont pas correctement indexés. Assurez-vous que vos colonnes de GUIDs sont indexées lorsque vous les utilisez comme clés primaires.

GUIDs dans .NET Core et le Framework

Les GUIDs sont pris en charge à la fois dans .NET Framework et .NET Core. L'utilisation de la classe Guid reste cohérente à travers les différentes versions de la plateforme .NET. Par conséquent, les développeurs travaillant avec n'importe quelle version de .NET peuvent facilement générer des GUIDs en utilisant la méthode Guid.NewGuid().

GUID vs UUID

Les GUIDs sont similaires aux UUIDs (Identifiants Universellement Uniques), et les termes sont souvent utilisés de manière interchangeable. Bien qu'il y ait quelques différences mineures dans la spécification, ils servent le même but de générer des identificateurs uniques.

Utiliser IronPDF avec GUID

C# New GUID (Comment ça fonctionne pour les développeurs) : Figure 1 - IronPDF

IronPDF est une bibliothèque PDF pour générer des PDFs à partir de HTML et d'autres opérations PDF dans les applications .NET. Vous pouvez combiner IronPDF avec des GUIDs lorsque vous avez besoin de générer des noms de fichiers uniques pour vos documents PDF. Cela garantit que chaque PDF généré a un nom unique, empêchant tout écrasement de fichiers ou conflit de noms. Voici un exemple simple de l'utilisation d'IronPDF avec un nouveau GUID :

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

Exécutez le code ci-dessus dans Visual Studio et observez le résultat.

C# New GUID (Comment ça fonctionne pour les développeurs) : Figure 2 - Sortie de la console Visual Studio

Nous utilisons Guid.NewGuid() pour créer un GUID aléatoire unique pour chaque fichier PDF. Ce GUID est converti en chaîne et utilisé comme nom de fichier.

Conclusion

C# New GUID (Comment ça fonctionne pour les développeurs) : Figure 3 - Licence

Dans cet article, nous avons couvert les bases des GUIDs en C#. Vous avez vu comment générer de nouveaux GUIDs, les comparer, les analyser à partir de chaînes, et les utiliser dans des scénarios pratiques tels que les bases de données. La méthode Guid.NewGuid() facilite la génération d'une nouvelle instance de GUID, garantissant que chaque identifiant est unique à travers les systèmes. Les développeurs travaillant en .NET peuvent compter sur les GUIDs pour fournir de l'aléatoire et de l'unicité dans leurs applications.

IronPDF comprend l'importance de tester avant d'investir, c'est pourquoi nous offrons un essai gratuit. Vous pouvez évaluer les performances du logiciel sans frais. Si vous le trouvez bénéfique, les licences commencent à $799.

Questions Fréquemment Posées

Comment puis-je générer un nouveau GUID en C# ?

En C#, vous pouvez générer un nouveau GUID en utilisant la méthode Guid.NewGuid(). Cette fonction crée une nouvelle instance d'un objet GUID, garantissant que chaque GUID généré est unique.

Quelles sont les utilisations pratiques des GUID en C# ?

Les GUID en C# peuvent être utilisés pour créer des identifiants uniques pour les entrées de base de données, générer des noms de fichier uniques pour les documents, et garantir l'unicité dans les systèmes distribués.

Comment les GUID peuvent-ils être utilisés pour gérer les noms de fichiers PDF ?

Les GUID peuvent être intégrés avec les bibliothèques de génération de PDF pour créer des noms de fichier uniques pour les PDFs. Cela évite les conflits de nommage et garantit que chaque document a un identifiant distinct.

Quelle est la différence entre les GUID et les UUID ?

Les GUID et les UUID sont essentiellement les mêmes, servant tous deux à générer des identifiants uniques. Ils sont souvent utilisés de manière interchangeable dans le développement logiciel.

Pouvez-vous convertir un GUID en chaîne de caractères en C# ?

Oui, vous pouvez convertir un GUID en chaîne de caractères en C# en utilisant la méthode ToString() sur un objet GUID.

Comment analyser un GUID à partir d'une chaîne de caractères en C# ?

Pour analyser un GUID à partir d'une chaîne de caractères en C#, utilisez la méthode Guid.Parse(). Assurez-vous que la chaîne est dans le format GUID correct pour éviter les exceptions.

Comment les GUID peuvent-ils améliorer la gestion des bases de données ?

Dans les bases de données, les GUID peuvent être utilisés comme clés primaires pour garantir que chaque enregistrement est identifiable de manière unique, surtout lorsque les données sont synchronisées à travers plusieurs systèmes.

Quels sont les erreurs courantes en utilisant les GUID en C# ?

Les erreurs courantes incluent l'hypothèse que les GUID sont séquentiels, la comparaison de GUID en tant que chaînes de caractères au lieu de directement, et le manque d'utilisation d'un index approprié dans les grandes bases de données.

Comment comparer deux GUID en C# ?

Vous pouvez comparer deux GUID en C# en utilisant l'opérateur d'égalité (==). Cela vous permet de vérifier si deux GUID sont identiques ou différents.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite