我们的结构体的一个字段是Guid类型。如何为它生成一个有效值?
有两种方法
var guid = Guid.NewGuid();
or
var guid = Guid.NewGuid().ToString();
两者都使用Guid类,第一个创建Guid对象,第二个创建Guid字符串。
var guid = new Guid();
嘿,这是一个“有效的”,虽然不是很有用,Guid。
(guid是全0,如果你不知道的话。有时,在你不想使用可空guid的情况下,这是需要指示没有guid的)
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();
如果你想创建一个“想要的”Guid,你可以这样做
var tempGuid = Guid.Parse("<guidValue>");
其中<guidValue>将是类似1A3B944E-3632-467B-A53A-206305310BAE。
如果您在Reflection c#中使用它,您可以从property属性中获得guid,如下所示
var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
var myguid= Guid.Parse(attribute.Id.ToString());
}
还有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
这真的很简单。. net框架提供了一个内置函数来创建和解析guid。这在System名称空间和静态Guid类中可用。
要创建一个GUID,只需使用下面的代码:
var newGuid = System.Guid.NewGuid();
要将GUID字符串解析为GUID,使用下面的代码:
var parsedGuid = System.Guid.Parse(guidString);
如果您只是想创建一个新的指南,并在您的应用程序中使用它,只需使用在线GUID Generator工具之一在线创建一个新的指南。
如果您正在使用ABP框架,建议使用IGuidGenerator.Create()而不是guide . newguid()。这是为了确保guid是顺序的,从而提高数据库上的读/写时间。 https://docs.abp.io/en/abp/latest/Guid-Generation#iguidgenerator
推荐文章
- 如何从枚举中选择一个随机值?
- 驻留在App_Code中的类不可访问
- 在链式LINQ扩展方法调用中等价于'let'关键字的代码
- dynamic (c# 4)和var之间的区别是什么?
- Visual Studio: ContextSwitchDeadlock
- 如何使用iOS创建GUID/UUID
- 返回文件在ASP。Net Core Web API
- 自定义HttpClient请求头
- 如果我使用OWIN Startup.cs类并将所有配置移动到那里,我是否需要一个Global.asax.cs文件?
- VS2013外部构建错误"error MSB4019: The imported project <path> was not found"
- 从另一个列表id中排序一个列表
- 等待一个无效的异步方法
- 无法加载文件或程序集…参数不正确
- c#中枚举中的方法
- 如何从字符串中删除新的行字符?