C#如何生成GUID?

Dev*_*404 33 .net c# guid winforms

如何在C#中生成GUID?

Jus*_*tin 45

有一个很好的文章在这里描述的GUID是如何产生的,尤其是为什么一个GUID的一个子不保证的广告是唯一的.

基本上,使用组合生成GUID

  • 用于生成GUID的计算机的MAC地址(因此,除非重新使用MAC地址,否则在不同计算机上生成的GUID是唯一的)
  • 时间戳(因此在同一台机器上的不同时间生成的GUID是唯一的)
  • 额外的"紧急统一位"(这些用于确保在同一台机器上几乎完全同时生成的GUID是唯一的)
  • 算法的标识符(以便使用不同算法生成的GUID是唯一的)

但是,这只是用于生成GUID 的一种特定算法(虽然我相信它是.Net框架使用的算法),而不是.Net框架使用的算法.

  • -1; 这个答案基本上用最后一句末尾的链接破坏了整个前提,并承认不是所问问题的答案。 (5认同)
  • .NET使用Windows的算法,从Windows 2000开始创建一个随机数(版本4 GUID):http://stackoverflow.com/a/2757969/1059776 (4认同)

Dav*_*vid 13

此算法在此处记录为全局唯一标识符

  • 该文章讨论了几种用于生成GUID的不同算法.哪一个是.NET实际使用的? (2认同)

Dav*_*eer 9

原始问题:

Guid如何生成它的标识符?如果我使用以下代码,它将如何输出Guid g = Guid.NewGuid();

输出是数字和字母的组合还是数字单独存在?

.Net System.Guid只是一个128位整数(16字节).数字和字母与它无关.您可以使用ToString()方法查看Guid的各种"人类可读"版本,其中包括数字0-9和字母AF(表示十六进制值),但这完全由您决定如何输出它.

  • 这个答案是错误的,因为它回答"什么是GUID?" 但真正的问题是"C#如何生成GUID?".因此@Justin提供的答案是正确的答案. (18认同)