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


当前回答

System.Guid desiredGuid = System.Guid.NewGuid();

其他回答

To生成一个“空的”全0 guid,如00000000-0000-0000-0000-000000000000。

var makeAllZeroGuID = new System.Guid();

or

var makeAllZeroGuID = System.Guid.Empty;

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

var uniqueGuID = System.Guid.NewGuid(); 

还有ShortGuid——c#中一个更短、url友好的GUID类。这是 可作为Nuget。更多信息请点击这里。

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

Guid.NewGuid()将创建一个

如果您在Reflection c#中使用它,您可以从property属性中获得guid,如下所示

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


Guid id = Guid.NewGuid();