如何生成保证唯一的 ID?

SE1*_*013 5 c#

我需要保证 ID 的唯一性。即使有 1 万亿分之一的机会被骗,我也不能使用它。

但我也不想走到天涯海角去寻找解决方案。我花了一些时间研究这个问题,迄今为止我发现的一切都无法为我提供一个唯一的 ID。

所以我想我会使用一些非常简单的东西,就像这样:

    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;
    }
Run Code Online (Sandbox Code Playgroud)

我的逻辑是:生成的每个新 UI 不可能与之前的任何 UI 相同。但后来我想知道 PC 是否有可能在同一毫秒内生成两个或多个这些 ID?当然,我随后在 Intellisense 中寻找纳秒属性,但它不存在。

怎样才能被一个ID garunteed是唯一的?

Geo*_*ell 4

var id = Guid.NewGuid(); 
Run Code Online (Sandbox Code Playgroud)

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