如何在不使用数据库的情况下生成 int/long 序列标识符

本文关键字:int long 标识符 情况下 数据库 | 更新日期: 2023-09-27 17:55:45

我想在 C# 中生成 int/long 类型的序列标识符,但我不想使用数据库来存储生成的值,我该怎么做?CPU 时钟周期计数器会有帮助吗?或者你还有其他想法吗?

如何在不使用数据库的情况下生成 int/long 序列标识符

试试这个:

using Microsoft.Win32;

RegistryKey key = 
   Registry.LocalMachine.CreateSubKey ("The Right Value");
private void InitializeTheKey()
{
    this.MaxIndex = 0; // Or any other value ..
}

public Int32 MaxIndex 
{ 
   get{ return  key.GetValue("MaxIndex"); }
   set{  key.SetValue ("MaxIndex", value); } 
}
public Int32 GetNewIndex()
{
    this.MaxIndex += 1;
    return this.MaxIndex;
}

警告:请勿使用 注册表。如果你不知道你是什么 正在做,你可以引起任意数量的 代价高昂的问题。在 自己的风险。

只要 Int32 没问题,就用 rand 就行了:

Random rand = new Random();
int newID = rand.Next(0, Int32.MaxValue);

或者对于 Int64,有人发布了一个扩展方法,你可以在这里使用:在 C# 中生成随机值