GUID値を生成するには?[C#、VB].NET TIPS

» 2007年11月22日 05時00分 公開
[一色政彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 一意なID値が必要な場合、プログラムではよくGUID(Globally Unique IDentifier。グローバル一意識別子。読み方は「グイッド」)値が用いられる。GUID値とは、世界で重複することがない、ユニーク(=唯一)な128bit(16byte)のランダムな数値である。GUID値は必ずしも「絶対に同じID値が生成されないこと」を保証するものではないが、その数値の範囲が2の128乗、つまり「およそ3.4×(10の38乗)」(=340億の100兆倍の100兆倍)もあるので、現実的に同じIDが生成される可能性はきわめて低い。

 GUID値とは、例えば次のような数値である。

  • GUID値の例:36fafa84-91be-4d6b-a916-bc6667677b65

 GUIDを文字列で表す際には、通常、この例のように8、4、4、4、12けたの間にハイフンを入れた16進数で表現される。

 このようなGUID値を生成する機能が、.NET Frameworkにはあらかじめ備わっている。具体的には、Guid構造体の静的メソッドNewGuidだ。NewGuidメソッドはパラメータを持たず、戻り値としてGuidオブジェクトを返す。

 返されたGuidオブジェクトのToStringメソッドを呼び出せば、GUID値を文字列として取得することができる。

 次のコードは、以上の説明に従って実装したコンソール・アプリケーションのサンプル・プログラムだ。実行すると、新しいGUID値を取得して文字列でコンソールに出力する。

using System;

class Class1
{
  [STAThread]
  static void Main(string[] args)
  {
    Guid guidValue = Guid.NewGuid();
    Console.WriteLine(guidValue.ToString());
    // 出力例:26fde9ed-06bc-4d0f-8773-cb399e73eb6c
  }
}

Module Module1

  Sub Main()
    Dim guidValue As Guid = Guid.NewGuid()
    Console.WriteLine(guidValue.ToString())
    ' 出力例:26fde9ed-06bc-4d0f-8773-cb399e73eb6c
  End Sub

End Module

GUID値を生成するコンソール・アプリケーションのサンプル・コード(上:C#、下:VB)

 このサンプル・プログラムを実行すると、32けたのGUID値の文字列が得られる。その際、その文字列には前述のハイフンが含まれるが、このハイフンが不要(Nothing)な場合は、GuidオブジェクトのToStringメソッドのパラメータに「N」を指定して呼び出せばよい。例えば次のようなコードになる。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。