7

使用 .NET Framework,有没有办法在 C# 中在指定的时间间隔内创建随机 GUID?例如,我需要一个大于 ffffffff-ffff-ffff-ffff-1ffffffffffffff 且小于 ffffffff-ffff-ffff-ffff-2ffffffffffff 的随机 GUID。

4

1 回答 1

7

使用这个重载

[CLSCompliantAttribute(false)]
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(0xa,0xb,0xc,0,1,2,3,4,5,6,7)创建一个与以下内容相对应的 Guid:

0000000a-000b-000c-0001-020304050607

您可以以任何您喜欢的方式随机化参数。例如,您可以这样做:

var r[] = new byte[] { 1,2,3,4 } // chosen by fair dice rolls
                                 // guaranteed to be random

var guid = new GUID(0xFFFFFFFF, 0xFFFF, 0xFFFF, 0xFFFF, r[1], r[2], r[3], r[4]...

反正你懂这个意思。您必须进行一些操作才能使第五个参数正确。

于 2012-10-16T03:53:07.703 回答