我有在GUID中用空字符串替换破折号的代码。
Replace(System.Guid.NewGuid.ToString, "-", "")
会消除GUID的唯一性吗?
有人也可以确认吗?
我们将GUID存储为char(32)。这样可以吗?由于我们在不同时区有国际用户,因此我们担心字符长度可能会超过32。谢谢。
是的,可以删除破折号。 Guid的唯一性得到保证。
短划线仅用于可读性:内部Guid由16个字节组成。有关更多详细信息,请参见Microsoft和Wikipedia。也看一下构造函数:
public Guid(int a, short b, short c, byte[] d);
public Guid(int a, short b, short c, byte d,
byte e, byte f, byte g, byte h,
byte i, byte
public Guid(uint a, ushort b, ushort c, byte d,
byte e, byte f, byte g, byte h,
byte i, byte j, byte k);
破折号不是GUID本身的一部分。它们只是公会的常见表示形式的一部分。因此,删除操作不会更改Guid值本身。