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#使用FluentScheduler实现触发定时任务

    C#使用FluentScheduler实现触发定时任务

    FluentScheduler是.Net平台下的一个自动任务调度组件,这篇文章主要为大家详细介绍了C#如何使用FluentScheduler实现触发定时任务,感兴趣的小伙伴可以了解下
    2023-12-12
  • C#编程获取资源文件中图片的方法

    C#编程获取资源文件中图片的方法

    这篇文章主要介绍了C#编程获取资源文件中图片的方法,涉及C#针对项目中资源文件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用

    Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • c# 实现RSA非对称加密算法

    c# 实现RSA非对称加密算法

    RSA解决了对称加密的一个不足,比如AES算法加密和解密时使用的是同一个秘钥,因此这个秘钥不能公开,因此对于需要公开秘钥的场合,我们需要在加密和解密过程中使用不同的秘钥,加密使用的公钥可以公开,解密使用的私钥要保密,这就是非对称加密的好处。 
    2021-06-06
  • C#客户端程序调用外部程序的3种实现方法

    C#客户端程序调用外部程序的3种实现方法

    这篇文章主要给大家介绍了关于C#客户端程序调用外部程序的3种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • 如何用C#实现压缩文件

    如何用C#实现压缩文件

    话说当今压缩市场三足鼎立,能叫上名号的有zip、rar、7z。其中zip是压缩界的鼻祖,在各大平台上的流行度最广,rar是商业软件,压缩率和效率都是很高的。7z是开源的,属于后起之秀。这篇文章介绍了如何使用ICSharpCode组件,在windows平台下zip的压缩与解压的方法
    2021-06-06
  • 全面分析c# LINQ

    全面分析c# LINQ

    这篇文章主要介绍了c# LINQ的相关资料,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-08-08
  • c#中WinForm使用OpencvSharp4实现简易抓边

    c#中WinForm使用OpencvSharp4实现简易抓边

    本文主要介绍了c#中WinForm使用OpencvSharp4实现简易抓边,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#利用itext实现PDF页面处理与切分

    C#利用itext实现PDF页面处理与切分

    这篇文章主要介绍了如何在C#中使用itext做一个pdf的页面大小一致性处理,然后再根据数据切分出需要的pdf,感兴趣的小伙伴可以了解一下
    2022-04-04
  • 详解C#如何在不同工作簿之间复制选定单元格区域

    详解C#如何在不同工作簿之间复制选定单元格区域

    处理Excel文档时,我们经常需要将数据整合到一个工作表以便于我们进行管理或数据对比。本文将演示如何通过编程方式将选定的单元格区域从一个工作簿复制到另一个工作簿
    2023-02-02

最新评论