
C# New GUID(開発者向けの仕組み)
GuidクラスのNewGuid()メソッドは、一般的にグローバルに一意な識別子(GUID)を作成するために使用されます。 GUIDは128ビットの整数で、すべてのコンピュータとネットワークで重複を避けて情報を一意に識別するために使用できます。 この記事では、C#でGUID(グローバルに一意な識別子)を扱うための実用的な使い方、例、コードスニペットに焦点を当てた詳細なガイドを提供します。 また、IronPDFライブラリについても探究します。
GUIDとは何ですか?
GUID (Globally Unique Identifier) はソフトウェア開発で使用される一意の識別子です。 .NETフレームワークでは、GUIDはSystem名前空間内のGuid構造体として表されます。 GUIDはデータベースの主キーとして、他のシステムで一意の識別子が必要な場合など多目的に使用されます。
Generating GUIDs in C#
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);
}
}Imports System
Module Program
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 Moduleこのコードでは、Console.WriteLineが新しく生成されたGUIDをコンソールに出力します。
GUIDの構造と形式
GUIDは32桁の16進数で構成され、通常は8-4-4-4-12の形式で表示されます(例: e02fd0e4-00fd-090A-ca30-0d00a0038ba0)。 ToString()メソッドを使用して文字列に変換すると、GUIDはこの形式で表されます。 この表現により、GUIDをJSON、XML、データベースなどテキストベースのフォーマットに簡単に保存できます。
以下のコード例は、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);
}
}Imports System
Module Example
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 Moduleこのコードは、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);
}
}Imports System
Module ParseExample
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 Moduleこのコードでは、Guid.Parse()メソッドが文字列をGUIDオブジェクトに戻します。
2つのGUIDの比較
GUIDは比較可能であるため、それらが等しいかどうかを確認できます。 Guid構造体は等価演算子(==)を実装しているため、2つの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.");
}
}
}Imports System
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このコードでは、2つのGUIDが比較されます。 Guid.NewGuid()で生成される各GUIDは一意であるため、結果は通常"2つのGUIDは異なります。"となります。
GUID使用時の一般的な間違い
-
GUIDは順序通りと仮定する: GUIDはランダムであり、
NewGuid()メソッドは順序付けされた値を生成しません。 したがって、GUIDが何らかの順序を維持することを仮定すべきではありません。 -
文字列としてGUIDを比較する: GUIDを文字列として比較することは非効率です。 Always compare GUID objects directly rather than converting them to strings and comparing the string values.
-
インデックスを付けずに大規模データベースでGUIDを使用する: GUIDは大きく、インデックスを適切に付けない場合、大規模データベースでパフォーマンスに影響を与える可能性があります。 主キーとして使用する際は、GUID列にインデックスが付いていることを確認してください。
.NET CoreとフレームワークにおけるGUID
GUIDは.NETフレームワークと.NET Coreの両方でサポートされています。 Guidクラスの使用法は.NETプラットフォームの異なるバージョン間で一貫しています。 したがって、.NETの任意のバージョンで作業する開発者は、Guid.NewGuid()メソッドを使用してGUIDを簡単に生成できます。
GUIDとUUIDの比較
GUIDはUUID(Universally Unique Identifiers)に似ており、これらの用語はしばしば交換可能に使用されます。 仕様に多少の違いがありますが、一意の識別子を生成するという目的は同じです。
GUIDとのIronPDFの利用

IronPDFは、HTMLからPDFを生成し、.NETアプリケーションでその他のPDF操作を行うためのPDFライブラリです。 PDFドキュメントのユニークなファイル名を生成する必要がある場合に、GUIDとIronPDFを組み合わせることができます。 これにより、生成される各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}");
}
}Imports System
Imports IronPdf
Module Program
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 As 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 ModuleVisual Studioで上記のコードを実行し、出力を観察してください。

各PDFファイルに固有のランダムGUIDを作成するためにGuid.NewGuid()を使用します。このGUIDは文字列に変換され、ファイル名として使用されます。
結論
この記事では、C#におけるGUIDの基本を紹介しました。 新しいGUIDの生成方法、比較、文字列からの解析、データベースなどの実際のシナリオでの使用方法を見ました。 Guid.NewGuid()メソッドを使用すると、各識別子がシステム全体で一意であることを保証し、新しいGUIDインスタンスを簡単に生成できます。 .NETで作業する開発者は、アプリケーションでランダム性と一意性を提供するためにGUIDを信頼できます。
IronPDFは、投資する前のテストの重要性を理解しており、そのため無料トライアルを提供しています。 ソフトウェアのパフォーマンスを無料で評価できます。有益だと思われる場合、ライセンスは$999から開始します。

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。
関連する記事


