有个问题想不明白:GUID ,例如:{27B215EC-BE07-320B-BEF7-1C898AD1D02D}
既然GUID是128位的数字标识符,那么中间的“-”显示实际并不是GUID的一部分,为什么要加“-”?

解决方案 »

  1.   

    GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。 
    在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类及接口标识、数据库、系统目录等对象。格式GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个32位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
    它的格式就是规定有‘-’这个符号的,这个是规定必须要有这个符号,没有什么为什么的,就好比也是一个准则,使用GUID的时候需要采用这种格式,所以-这个符号也应该是属于GUI的一部分的
      

  2.   

    楼上的,你说的不对。在有些系统中产生的GUID就没有这横杠,比如Oracle中生成GUID的内置函数:sys_guid()。SQL> select sys_guid() from dual;SYS_GUID()
    --------------------------------
    DDD1CCB73D949EF2E0438722090F9EF2
      

  3.   

    显示,作为一个128位的数字,合法的字符为:0123456789ABCDEF 之一,并不包括“-”。有“-”应当是为了便于阅读,它本身应当并不是GUID的内容。
      

  4.   

    在博客园看到的:
    1、Guid.NewGuid().ToString("N") 结果为:
        38bddf48f43c48588e0d78761eaa1ce6
    2、Guid.NewGuid().ToString("D") 结果为:
        57d99d89-caab-482a-a0e9-a0a803eed3ba
    3、Guid.NewGuid().ToString("B") 结果为:
        {09f140d5-af72-44ba-a763-c861304b46f8}
    4、Guid.NewGuid().ToString("P") 结果为:
        (778406c2-efff-4262-ab03-70a77d09c2b5)