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

C# 如何在不使用数据库的情况下生成int/long序列标识符?,c#,generator,sequence,C#,Generator,Sequence,我想在C中生成int/long类型的序列标识符,但我不想使用数据库来存储生成的值,我该怎么做?CPU滴答计数器是否有用?或者你还有其他想法吗?试试这个: using Microsoft.Win32; RegistryKey key = Registry.LocalMachine.CreateSubKey ("The Right Value"); private void InitializeTheKey() { this.MaxIndex = 0; // Or any o

我想在C中生成int/long类型的序列标识符,但我不想使用数据库来存储生成的值,我该怎么做?CPU滴答计数器是否有用?或者你还有其他想法吗?

试试这个:

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;

}
警告:不要玩游戏 登记处。如果你不知道你在做什么 正在做的事情,你可以造成任何数量的 代价高昂的问题。在您的计算机上使用此代码 自己承担风险

试试这个:

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还可以,只需使用兰德:

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

或者对于Int64,有人在这里发布了一个您可以使用的扩展方法:

只要Int32还可以,就使用rand:

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

或者对于Int64,有人在这里发布了您可以使用的扩展方法:

是否需要此方法保持不变?是否需要单调递增的计数器?是否需要此方法保持不变?是否需要单调递增的计数器?当应用程序重新启动时,它将重设。我会将MaxIndex保存在存储所有这些数据的任何文件中它将在应用程序重新启动时重置。我会将MaxIndex保存在任何要存储所有这些索引的文件中。