2010-10-02 42 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