C#如何创建Guid值?

问题描述 投票:0回答:13

我们结构体的一个字段是

Guid
类型。如何为其生成有效值?

c# guid
13个回答
1098
投票
Guid id = Guid.NewGuid();

106
投票

有两种方法

var guid = Guid.NewGuid();

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

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


105
投票

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


61
投票

Guid.NewGuid() 将创建一个


37
投票

制作一个“空”全0 guid,如

00000000-0000-0000-0000-000000000000

var makeAllZeroGuID = new System.Guid();

var makeAllZeroGuID = System.Guid.Empty;

制作一个具有唯一值的实际指南,这可能是您想要的。

var uniqueGuID = System.Guid.NewGuid(); 

36
投票
var guid = new Guid();

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

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


32
投票

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

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

其中

<guidValue>
类似于
1A3B944E-3632-467B-A53A-206305310BAE


22
投票
System.Guid desiredGuid = System.Guid.NewGuid();

7
投票

还有 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

1
投票

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

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



1
投票

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

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

var newGuid = System.Guid.NewGuid(); 

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

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

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


0
投票

如果您使用ABP框架,建议使用IGuidGenerator.Create()而不是Guid.NewGuid()。这是为了确保 GUID 是连续的,从而缩短数据库的读/写时间。 https://docs.abp.io/en/abp/latest/Guid-Generation#iguidgenerator


0
投票

使用'

Guid guid = Guid.NewGuid();

您需要:

using System;

主要用于任何 C# 代码。

如果有任何问题,请确保Guid未被覆盖

© www.soinside.com 2019 - 2024. All rights reserved.