C#使用GUID(全局统一标识符)

 更新时间:2022年04月20日 10:20:04   作者:農碼一生  
这篇文章介绍了C#使用GUID(全局统一标识符)的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、简介

1.什么是GUID?

全局唯一标识符(GUID,Globally Unique Identifier),GUID也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。

2.为什么要使用GUID?

在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。
(1). GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。
(2). GUID永远是方便的
对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程。在.NET程序需要的地方,这一功能很容易地生成唯一的数值。

二、代码案例

    class Program
    {
        static void Main(string[] args)
        {

            var uuid = Guid.NewGuid().ToString(); // 67b69599-5026-4765-8707-def49a214219

            var uuidN = Guid.NewGuid().ToString("N"); // f93618e93beb4a4181526d7a38c169a4

            var uuidD = Guid.NewGuid().ToString("D"); //c747ac63-a9c2-46f9-80d7-f635c330a59f

            var uuidB = Guid.NewGuid().ToString("B"); // {2a77d03e-0366-4977-97f1-229c17fe906f}

            var uuidP = Guid.NewGuid().ToString("P"); // (8165193f-8595-439d-bbaf-9ce55171eecf)

            var uuidX = Guid.NewGuid().ToString("X"); // {0x48645e66,0xbe0c,0x4990,{0x8e,0xee,0x3c,0x84,0xba,0xda,0x0d,0x83}}

            var guid1 = GenerateId1();//5a0aec9398c64e09

            var guid2 = GenerateId2();//4976172849618296785
        }
        
        private static  string GenerateId1()
        {
            long i = 1;
            foreach (byte b in Guid.NewGuid().ToByteArray())
            {
                i *= ((int)b + 1);
            }
            return string.Format("{0:x}", i - DateTime.Now.Ticks);
        }

        private static  long GenerateId2()
        {
            byte[] buffer = Guid.NewGuid().ToByteArray();
            return BitConverter.ToInt64(buffer, 0);
        }
    }

三、总结

这里的D,N,B,P是不区分大小写的,如果传入空字符串,则使用的默认的D类型,其它情况都会报异常。

到此这篇关于C#使用GUID(全局统一标识符)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C# 抓图服务的实现

    C# 抓图服务的实现

    这篇文章主要介绍了C# 抓图服务的实现,帮助大家更好的利用c#处理窗口,进行截图,感兴趣的朋友可以了解下
    2021-01-01
  • 用C#来解析PDF文件

    用C#来解析PDF文件

    这篇文章主要介绍了用C#来解析PDF文件,同时作者也介绍了PdfFileAnalyzer这个应用可以作为很好的成品示例,需要的朋友可以参考下
    2015-07-07
  • C#远程获取图片文件流的方法

    C#远程获取图片文件流的方法

    这篇文章主要介绍了C#远程获取图片文件流的方法,涉及C#针对图片及文件流操作的相关技巧,需要的朋友可以参考下
    2016-02-02
  • c# record的使用场景

    c# record的使用场景

    这篇文章主要介绍了c# record的使用场景,帮助大家更好的理解和学习使用c#的新特性,感兴趣的朋友可以了解下
    2021-02-02
  • 利用C#与PLC通信实现设备远程控制与管理

    利用C#与PLC通信实现设备远程控制与管理

    PLC是工业自动化中用于控制机械设备、生产线等的核心设备,通过与PLC的通信,我们可以实现设备的远程监控、数据采集等功能,C#作为一种现代化的编程语言,能够非常方便地与PLC进行通信,本文将介绍如何利用C#与PLC进行通信,并实现设备的远程控制与管理
    2025-02-02
  • C#串口通信工具类的封装

    C#串口通信工具类的封装

    这篇文章主要为大家详细介绍了C#串口通信工具类封装,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#实现的调用DOS命令操作类实例

    C#实现的调用DOS命令操作类实例

    这篇文章主要介绍了C#实现的调用DOS命令操作类,实例分析了C#调用系统常用DOS命令的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 详解C#中的委托

    详解C#中的委托

    本文主要介绍了C#中委托的相关知识。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • c#二进制逆序方法详解

    c#二进制逆序方法详解

    这篇文章介绍了c#二进制逆序方法,有需要的朋友可以参考一下
    2013-10-10
  • C#如何调用C++库

    C#如何调用C++库

    这篇文章主要介绍了C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论