在. net2.0 中, Guid 结构体表示一个全局唯一标识符, 是一个在生成时就可以肯定为全世界唯一的 16 字节值. Guid 在数据库中通常可以作为各种排序的主键. 比如
- public class Company
- {
- public Guid id { get; set; }
- ......
- }
其中 Guid 可以表示值范围总共有 2128 或者 3.4x1018 个值.
可以调用静态的 Guid.newGuid 方法创件一个新的唯一的 Guid;
在 vs code 里直接 dotnet new console -n test 创建控制台项目, 写入测试代码:
- using System;
- using static System.Guid;
- using static System.Console;
- namespace test
- {
- class Program
- {
- static void Main(string[] args)
- {
- Guid newGuid1 = Guid.NewGuid();
- WriteLine(newGuid1.ToString());
- }
- }
- }
然后在 powershell 里 cd test, 进行 dotnet build 及 dotnet run;
PS C:\Users\huang\source\repos \ 数据结构 \ Guid> dotnet build
用于 .NET Core 的 Microsoft (R) 生成引擎版本 16.4.0+e901037fe
版权所有 (C) Microsoft Corporation. 保留所有权利.
C:\Users\huang\source\repos \ 数据结构 \ Guid\Guid.csproj 的还原在 35.37 ms 内完成.
Guid -> C:\Users\huang\source\repos \ 数据结构 \ Guid\bin\Debug\netcoreapp3.1\Guid.dll
已成功生成.
0 个警告
0 个错误
已用时间 00:00:01.10
PS C:\Users\huang\source\repos \ 数据结构 \ Guid> dotnet run
664a92a8-70cd-46ec-b8e5-f7aba10d6127
PS C:\Users\huang\source\repos \ 数据结构 \ Guid>
可看到生成了一个 16 字节值.
当然, 也可以直接使用构造器实例化一个现有的 Guid, 比如
- class Guid1{
- int _x;
- public Guid(int x) { _x = x; }
- }
- }
当以字符串形式出现时, Guid 是一个由 32 个 16 进制数字表示.
Guid newGuid2 = Guid.NewGuid("664a92a8-70cd-46ec-b8e5-f7aba10d6127");
Guid 是一个结构体, 支持值类型的语义, Guid 有一个 ToByteArray 方法可以将其转换为一个字节数组, 其中 Guid.Empty 静态属性可以返回一个空的 Guid, 通常用来表示 null.
posted on 2020-02-12 23:58 忘临川 阅读 (...) 评论 (...) 编辑 收藏
来源: https://www.cnblogs.com/derong5093/p/12301909.html