【问题标题】:C# how to create a Guid value?C#如何创建一个Guid值?
【发布时间】:2011-01-21 14:15:08
【问题描述】:

我们结构的一个字段是Guid 类型。如何为其生成有效值?

【问题讨论】:

标签: c# guid


【解决方案1】:
Guid id = Guid.NewGuid();

【讨论】:

  • 如果你和我一样犯错 (new Guid().toString()) 你会得到 0000-00000-00000-00000。你需要做 Guid.NewGuid().toString()
  • 您可能也对格式化 Guid 感兴趣 msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx
  • 一点修正,Guid对象上没有函数'toString()',它是'ToString()'
【解决方案2】:

Guid.NewGuid() 创建一个新的随机 guid。

【讨论】:

    【解决方案3】:

    Guid.NewGuid() 将创建一个

    【讨论】:

      【解决方案4】:

      有两种方法

      var guid = Guid.NewGuid();
      

      var guid = Guid.NewGuid().ToString();
      

      都使用 Guid 类,第一个创建 Guid 对象,第二个创建 Guid 字符串。

      【讨论】:

      • @Justin,这是一种方法。 var guid = Guid.NewGuid().ToString() 只是把它变成一个字符串。
      • @MichaelMeadows 是的,这是正确的,第一个创建一个新的 Guid 对象,第二个创建一个字符串。
      【解决方案5】:
      var guid = new Guid();
      

      嘿,它是一个“有效的”,虽然不是很有用,Guid。

      (如果您不知道,则 guid 全部为零。有时在您不想使用可为空的 Guid 的情况下,这需要指示没有 guid)

      【讨论】:

      • 这不会创建全零。它创建一个有效的 Guid。 Guid.Empty 返回全零。
      • @FlavorScape 在你尝试之前,我打赌你 50 代表(通过赏金)你错了。成交?
      • 嗯,我在想 Guid.NewGuid()。我真的很想验证新的 Guid()
      • 我用这个解决方案打败了你:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
      • 当您必须将 guid 传递给您不拥有且不接受可为空 guid 的代码时。
      【解决方案6】:
      System.Guid desiredGuid = System.Guid.NewGuid();
      

      【讨论】:

      • 这似乎是做到这一点的新方法,至少在 2012 年。我似乎在 2015 年没有 Guid.NewGuid() 可用。
      • @DaveYarwood Guid 已经在 System 命名空间下很长时间了,并且是其他人在其他答案中所指的内容(恰好是一个新类已经具有 Using为普通模板中的系统命名空间添加)
      【解决方案7】:

      创建一个像00000000-0000-0000-0000-000000000000 这样的“空”全0 guid。

      var makeAllZeroGuID = new System.Guid();
      

      var makeAllZeroGuID = System.Guid.Empty;
      

      创建一个具有唯一值的实际 guid,这可能是您想要的。

      var uniqueGuID = System.Guid.NewGuid(); 
      

      【讨论】:

        【解决方案8】:

        如果你想创建一个“想要的”Guid,你可以这样做

        var tempGuid = Guid.Parse("<guidValue>");
        

        &lt;guidValue&gt; 类似于 1A3B944E-3632-467B-A53A-206305310BAE

        【讨论】:

          【解决方案9】:

          如果你在Reflection C#中使用这个,你可以从property属性中获取guid,如下所示

          var propertyAttributes= property.GetCustomAttributes();
          foreach(var attribute in propertyAttributes)
          {
            var myguid= Guid.Parse(attribute.Id.ToString());
          }
          
          
          

          【讨论】:

            【解决方案10】:

            还有 ShortGuid - C# 中一个更短且对 url 友好的 GUID 类。它是 以Nuget 的形式提供。更多信息here

            PM> Install-Package CSharpVitamins.ShortGuid
            

            用法:

            Guid guid = Guid.NewGuid();
            ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
            Console.WriteLine(sguid1);
            Console.WriteLine(sguid1.Guid);
            

            这会生成一个新的 guid,使用该 guid 创建一个 ShortGuid,并在控制台中显示两个等效值。结果大致如下:

            ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
            Guid:      b1754c14-d296-4b0f-a09a-030017f4461f
            

            【讨论】:

              【解决方案11】:

              这真的很容易。 .Net 框架提供了一个内置函数来创建和解析 GUIDS。这在 System 命名空间和静态 Guid 类中可用。

              要创建 GUID,只需使用以下代码:

              var newGuid = System.Guid.NewGuid(); 
              

              要将 GUID 字符串解析为 GUID,请使用以下代码:

              var parsedGuid = System.Guid.Parse(guidString);
              

              如果您只是想创建一个新指南并在您的应用程序中使用它,只需使用在线online GUID Generator 工具之一为自己创建一个新指南。

              【讨论】:

                【解决方案12】:
                // Create and display the value of two GUIDs.
                Guid g = Guid.NewGuid();
                Console.WriteLine(g);
                Console.WriteLine(Guid.NewGuid());
                
                // This code example produces a result similar to the following:
                
                // 0f8fad5b-d9cb-469f-a165-70867728950e
                // 7c9e6679-7425-40de-944b-e07fc1f90ae7
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2010-09-11
                  • 1970-01-01
                  • 2010-10-08
                  • 1970-01-01
                  相关资源
                  最近更新 更多