Как создать идентификатор последовательности int / long без использования баз данных? - PullRequest
2 голосов
/ 09 мая 2011

Я хочу сгенерировать идентификаторы последовательности с типом int / long в C #, но я не хочу использовать базы данных для хранения сгенерированных значений, как я могу это сделать? Будет ли полезен счетчик тактов процессора? Или у тебя есть другие идеи?

Ответы [ 2 ]

0 голосов
/ 09 мая 2011

Пока Int32 в порядке, просто используйте rand:

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

Или для Int64 кто-то опубликовал метод расширения, который вы можете использовать здесь: Генерация случайных значений в C #

0 голосов
/ 09 мая 2011

Попробуйте это:

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;

}

ВНИМАНИЕ: НЕ ИГРАТЬ С РЕГИСТР. Если вы не знаете, что вы делают, вы можете вызвать любое количество дорогостоящие проблемы. Используйте этот код на вашем собственный риск.

...