NewGuid();
vs System.Guid.NewGuid().ToString("D");
を使用してGUID=)を生成する場合、またはそれらは同じものですか?
Guid.NewGuid().ToString()
はGUIDの文字列表現です。つまり、string
オブジェクトを返し、Guid.NewGuid()
はGuid
データ型を返します。
この質問にはすでに受け入れられた答えがあることはわかっていますが、GUIDのフォーマットに関する情報を共有することは有益だと思いました。
ToString()(パラメータなし)メソッド は、次の形式を使用してGUIDをフォーマットします。
_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
_
ToString(string format)method は、いくつかの方法のいずれかでGUIDをフォーマットします。
_"N" - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (32 digits)
"D" - xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (32 digits separated by hyphens)
"B" - {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} (same as "D" with addition of braces)
"P" - (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) (same as "D" with addition of parentheses)
"X" - {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}
_
Guid.ToString("D")
を呼び出すと、Guid.ToString()
を呼び出すのと同じ結果が得られます。
他の回答で述べたように、guid自体には形式がありません。これは単なる値です。 NewGuidまたはguidのコンストラクターを使用して、guidを作成できることに注意してください。 NewGuidを使用すると、guidの値を制御できません。 guidのコンストラクターを使用して、値を制御できます。コンストラクターの使用は、GUIDの文字列表現を既に持っている場合(データベースから読み取る可能性がある場合)、または開発中にGUIDを解釈しやすくする場合に便利です。 Parse 、 ParseExact 、 TryParse 、および TryParseExact メソッドも使用できます。
したがって、次のようなGUIDを作成できます。
_Guid g1 = Guid.NewGuid(); //Get a Guid without any control over the contents
Guid g2 = new Guid(new string('A',32)); //Get a Guid where all digits == 'A'
Guid g3 = Guid.Parse(g1.ToString());
Guid g4 = Guid.ParseExact(g1.ToString("D"),"D");
Guid g5;
bool b1 = Guid.TryParse(g1.ToString(), out g5);
Guid g6;
bool b2 = Guid.TryParseExact(g1.ToString("D"),"D", out g6);
_
System.Guid.NewGuid().ToString("D")
はSystem.Guid.NewGuid()
を呼び出してから、結果に対してToString
を呼び出すため、生成アルゴリズムは両方で同じである必要があります。つまり、両方の例はGUIDを生成するのと同じ方法。 「フォーマット」の比較について-System.Guid.NewGuid()
にはSystem.Guid.NewGuid().ToString("D")
と同じように「フォーマット」がないため、これは意味がありません-ToString
guidの内部表現に外部の文字列形式を与えるメソッド。文字列の形式は、文字列メソッドに渡す引数によって異なります。
System.Guid.NewGuid()
を使用すると、Guid
型のオブジェクトを取得できます
System.Guid.NewGuid().ToString("D");
を使用すると、Guid
オブジェクトの文字列表現を取得できます
また、私は.ToString("D")
と.ToString()
の間に違いがないことを知っています