全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
/// <summary>
/// Guid工具类
/// </summary>
public class GuidUtils
{
/// <summary>
/// 获取一个大写的字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private static string upper(string str)
{
return str.ToUpper();
}
/// <summary>
/// 获取32位不包含“-”号的GUID字符串
/// </summary>
/// <param name="isUpper">是否大写</param>
/// <returns></returns>
public static string NewGuidFormatN(bool isUpper = false)
{
var guid = Guid.NewGuid().ToString("N");
return isUpper == true ? upper(guid) : guid;
}
/// <summary>
/// 获取32位包含“-”号的GUID字符串
/// </summary>
/// <param name="isUpper">是否大写</param>
/// <returns></returns>
public static string NewGuidFormatD(bool isUpper = false)
{
var guid = Guid.NewGuid().ToString("D");
return isUpper == true ? upper(guid) : guid;
}
/// <summary>
/// 获取32位包含“-”号的GUID被“(”、“)”包括的字符串
/// </summary>
/// <param name="isUpper">是否大写</param>
/// <returns></returns>
public static string NewGuidFormatP(bool isUpper = false)
{
var guid = Guid.NewGuid().ToString("P");
return isUpper == true ? upper(guid) : guid;
}
/// <summary>
/// 获取32位包含“-”号的GUID被“{”、“}”包括的字符串
/// </summary>
/// <param name="isUpper">是否大写</param>
/// <returns></returns>
public static string NewGuidFormatB(bool isUpper = false)
{
var guid = Guid.NewGuid().ToString("B");
return isUpper == true ? upper(guid) : guid;
}
/// <summary>
/// 获取4个被“{”、“}”包括的十六进制数,其中第四个值位8个被“{”、“}”包括的十六进制数字符串
/// </summary>
/// <param name="isUpper">是否大写</param>
/// <returns></returns>
public static string NewGuidFormatX(bool isUpper = false)
{
var guid = Guid.NewGuid().ToString("X");
return isUpper == true ? upper(guid) : guid;
}
}