IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

C# Nowe GUID (Jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 19 lipca 2026

Metoda NewGuid() w klasie Guid jest powszechnie używana do tworzenia globalnie unikalnych identyfikatorów (GUID). GUID to 128-bitowa liczba całkowita, która może być używana we wszystkich komputerach i sieciach do unikalnego identyfikowania informacji bez ryzyka duplikatów. Ten artykuł dostarczy szczegółowego przewodnika na temat pracy z GUID (Globalnie Unikalnymi Identyfikatorami) w C#, koncentrując się na praktycznych zastosowaniach, przykładach i fragmentach kodu. Przyjrzymy się także bibliotece IronPDF.

Co to jest GUID?

GUID (Global Unique Identifier) to unikalny identyfikator używany w rozwoju oprogramowania. W ramach .NET GUIDy są reprezentowane jako struktura Guid w przestrzeni nazw System. GUIDy są często używane jako klucze główne w bazach danych, a także w innych systemach, gdzie potrzebne są unikalne identyfikatory między systemami.

Generating GUIDs in C#

Aby wygenerować nowy GUID w C#, używa się funkcji Guid.NewGuid(). Ta metoda tworzy nową instancję obiektu GUID i zapewnia, że każdy wygenerowany GUID jest unikalny. Wewnętrznie GUIDy są generowane za pomocą generatora liczb losowych, aby zapewnić, że żadne dwa GUIDy nie będą miały tej samej wartości.

Oto prosty przykład kodu generowania nowego 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);
    }
}

W tym kodzie metoda Guid.NewGuid() tworzy nowy GUID używając wewnętrznie generatora liczb losowych, a Console.WriteLine wyprowadza nowo wygenerowany GUID na konsolę.

Struktura i format GUID

GUID składa się z 32 cyfr szesnastkowych, zazwyczaj wyświetlanych w formacie 8-4-4-4-12 (np. e02fd0e4-00fd-090A-ca30-0d00a0038ba0). Gdy zostanie przekonwertowany na ciąg za pomocą metody ToString(), GUID jest reprezentowany w tym formacie. To przedstawienie ułatwia przechowywanie GUIDów w formatach tekstowych, takich jak JSON, XML czy bazy danych.

Przykład kodu poniżej pokazuje, jak przekonwertować GUID na ciąg znaków:

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);
    }
}

Ten kod konwertuje GUID na ciąg znaków i wyprowadza go.

Parsowanie ciągów GUID

Czasami może być konieczne przekształcenie ciągu znaków z powrotem w obiekt GUID. Jest to wykonywane za pomocą metody Guid.Parse(). Jeżeli ciąg ma poprawny format, zostanie przekształcony w instancję GUID. Jeżeli format jest niepoprawny, zostanie zgłoszony wyjątek.

Oto przykład kodu:

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);
    }
}

W tym kodzie metoda Guid.Parse() konwertuje ciąg z powrotem do obiektu GUID.

Porównywanie dwóch GUID

GUIDy mogą być porównane w celu sprawdzenia, czy są równe, czy nie. Struktura Guid implementuje operator równości (==), więc można porównać bezpośrednio dwa obiekty GUID.

Oto przykład:

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.");
        }
    }
}

W tym kodzie porównywane są dwa GUIDy. Ponieważ każdy GUID generowany przez Guid.NewGuid() jest unikalny, wynik zazwyczaj będzie brzmiał "Dwa GUIDy są różne".

Powszechne błędy przy używaniu GUIDów

  1. Założenie, że GUIDy są sekwencyjne: GUIDy są losowe, a metoda NewGuid() nie generuje wartości sekwencyjnych. Dlatego nie należy zakładać, że GUIDy będą zachowywać jakąkolwiek kolejność.

  2. Porównywanie ciągów zamiast porównywania GUIDów: Porównywanie GUIDów jako ciągów może być nieefektywne. Zawsze porównuj obiekty GUID bezpośrednio zamiast konwertować je na ciągi i porównywać wartości ciągów.

  3. Używanie GUIDów w dużych bazach danych bez indeksowania: GUIDy mogą być duże i mogą wpływać na wydajność w dużych bazach danych, jeśli nie są poprawnie indeksowane. Upewnij się, że twoje kolumny GUID są indeksowane, gdy używasz ich jako kluczy głównych.

GUIDy w .NET Core i Framework

GUIDy są obsługiwane zarówno w .NET Framework, jak i .NET Core. Używanie klasy Guid pozostaje spójne między różnymi wersjami platformy .NET. Dlatego programiści pracujący z dowolną wersją .NET mogą łatwo generować GUIDy za pomocą metody Guid.NewGuid().

GUID a UUID

GUIDy są podobne do UUID (Uniwersalne Unikalne Identyfikatory), a terminy te są często używane zamiennie. Chociaż istnieją pewne drobne różnice w specyfikacjach, służą one temu samemu celowi generowania unikalnych identyfikatorów.

Korzystanie z IronPDF z GUID

C# New GUID (Jak to działa dla deweloperów): Rysunek 1 - IronPDF

IronPDF to biblioteka PDF do generowania PDFów z HTML i innych operacji PDF w aplikacjach .NET. Możesz połączyć IronPDF z GUIDami, gdy potrzebujesz generować unikalne nazwy plików dla swoich dokumentów PDF. Zapewnia to, że każdy wygenerowany PDF ma unikalną nazwę, zapobiegając nadpisywaniu plików lub konfliktom w nazwach. Oto prosty przykład użycia IronPDF z nowym 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}");
    }
}

Uruchom powyższy kod w Visual Studio i obserwuj wynik.

C# New GUID (Jak to działa dla deweloperów): Rysunek 2 - Wynik konsoli w Visual Studio

Używamy Guid.NewGuid(), aby stworzyć unikalny losowy GUID dla każdego pliku PDF. Ten GUID jest konwertowany na ciąg i używany jako nazwa pliku.

Wnioski

C# New GUID (Jak to działa dla deweloperów): Rysunek 3 - Licencjonowanie

W tym artykułe omówiliśmy podstawy GUID w C#. Zobaczyłeś, jak generować nowe GUID, porównywać je, parsować je z ciągów i używać ich w praktycznych scenariuszach, takich jak bazy danych. Metoda Guid.NewGuid() ułatwia generowanie nowej instancji GUID, zapewniając, że każdy identyfikator jest unikalny w różnych systemach. Deweloperzy pracujący w .NET mogą polegać na GUIDach, aby zapewnić losowość i unikalność w swoich aplikacjach.

IronPDF rozumie znaczenie testowania przed inwestowaniem, dlatego oferujemy bezpłatną wersję próbną. Można ocenić wydajność oprogramowania bez kosztów. Jeśli uznasz, że jest korzystne, licencje zaczynają się od $999.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta