关于c#:如何生成保证唯一的ID?


How do I generate an ID that is garunteed to be unique?

本问题已经有最佳答案,请猛点这里访问。

我需要炫耀身份证的独特性,即使有1/1万亿的可能会有被欺骗的机会,我也不能使用它。

但我也不想到天涯海角去寻找解决办法。我花了一些时间研究这个问题,到目前为止我所发现的一切都无法给我一个独特的身份证。

所以我想我会用一些非常简单的方法,比如:

1
2
3
4
5
6
7
8
9
10
11
12
    public static string GenerateItemID()
    {
        string year = DateTime.Now.Year.ToString(),
            month = DateTime.Now.Month.ToString(),
            day = DateTime.Now.Day.ToString(),
            hour = DateTime.Now.Hour.ToString(),
            minute = DateTime.Now.Minute.ToString(),
            second = DateTime.Now.Second.ToString(),
            millisecond = DateTime.Now.Millisecond.ToString();

        return year + month + day + hour + minute + second + millisecond;
    }

我这里的逻辑是:生成的每个新UI都不可能与以前的任何UI相同。但是我想知道一台个人电脑是否可以在同一毫秒内产生两个或更多的ID?自然地,我在intellisense中寻找纳秒属性,但它不存在。

如何生成一个被认为是唯一的ID?


1
var id = Guid.NewGuid();

我相信这将创建一个相当独特的ID。


让我们使用GUID。

请参阅:https://msdn.microsoft.com/en-us/library/system.guid.newguid(v=vs.110).aspx

希望这有帮助。