2010-10-02 43 views
2

我早先通过使用Math.Rando,方法或有时使用GUID.NewGUID方法生成了唯一的ID。这次我试图生成一个基于特定模式的唯一数字。按照像C#中的“digitStringDigit”这样的特定模式生成唯一ID。

例如123ABC123 - 数字的长度将始终保持为9,它将包含3个数字后跟3个字符,然后是3个数字。

+1

这些需要在多个应用程序中是唯一的吗?在您的应用程序中唯一唯一?这些id是否可以从单一点生成(例如,对于例如IdGenerator类的静态GetId()方法?) – Rohith 2010-10-02 07:35:36

+0

这需要在应用程序中是唯一的,而且它们可以从单个点生成 – Sandhurst 2010-10-02 07:43:07

+0

“需要在内部是唯一的申请“非常混乱;你在谈论多个应用程序吗?他们是在同一时间运行吗?在不同的机器上? – 2010-10-04 18:40:58

回答

2

如果我想要一个纯粹的唯一的ID,我会用:

TimeSpan uniqueID = DateTime.Now.ticks; 

哪个guarnatees你会得到一个唯一的ID无论何时你怎么称呼它的。

+1

如果有人倒回时钟怎么办? – kofucii 2010-10-02 13:05:59

+0

datetime.now.ticks利用PC内部的CMOS时钟。除非您的用户要对电脑进行重大的物理更改,否则这应该是生成 唯一ID的非常安全的方法。 – 2010-10-02 13:19:39

+0

该时钟仍然与用户设置的时钟相同。 – Tergiver 2010-10-02 15:31:02