C# NewGuid vs System.Guid.NewGuid().ToString(";D";);
使用C# NewGuid vs System.Guid.NewGuid().ToString(";D";);,c#,.net,guid,C#,.net,Guid,使用NewGuid()生成GUID时是否存在差异vsSystem.Guid.NewGuid().ToString(“D”)或者它们是相同的东西?Guid.NewGuid().ToString()是Guid的字符串表示形式,即返回string对象,而Guid.NewGuid()返回Guid数据类型。使用System.Guid.NewGuid()您将获得Guid类型的对象 使用System.Guid.NewGuid().ToString(“D”)您将获得Guid对象的字符串表示形式 另外,正如我所知
NewGuid()生成GUID时是否存在差异
vsSystem.Guid.NewGuid().ToString(“D”)
或者它们是相同的东西?Guid.NewGuid().ToString()
是Guid的字符串表示形式,即返回string
对象,而Guid.NewGuid()
返回Guid
数据类型。使用System.Guid.NewGuid()
您将获得Guid
类型的对象
使用
System.Guid.NewGuid().ToString(“D”)
您将获得Guid
对象的字符串表示形式
另外,正如我所知,
.ToString(“D”)
和.ToString()
两者的生成算法必须相同,因为System.Guid.NewGuid().ToString(“D”)
正在调用System.Guid.NewGuid()
,然后对结果调用ToString
,即。,两个示例都调用相同的方法来生成guid。至于比较“格式”-这没有意义,因为System.Guid.NewGuid()
没有与System.Guid.NewGuid().ToString(“D”)
相同的“格式”-只有通过调用ToString
方法,才能为Guid的内部表示形式提供外部字符串格式。字符串采用的格式取决于传递给string方法的参数。我知道这个问题已经有了公认的答案,但我认为分享一些关于格式化GUID的信息会很有用
将使用以下格式设置guid的格式:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
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,则使用构造函数非常有用。也可以使用、和方法
因此,您可以创建如下GUI:
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);
除了一个是字符串,另一个是guid,Id的格式和生成是否相同?@001,
guid guid=guid.NewGuid()代码>将生成Guid
对象。调用string s=guid.ToString()
将创建生成的GUID的字符串表示形式。非常感谢您在格式化您的答案方面所做的努力:)这是我所见过的GUID格式的最简洁的解释。干得好,谢谢你!