アプリケーション内で重複しない番号を生成するクラスを作ってみました。
public class IdGenerator
{
private int _currentId = 0;
private readonly object _lock = new();
public int NextId()
{
lock (_lock)
{
return ++_currentId;
}
}
}
class Program
{
static void Main()
{
var idGenerator = new IdGenerator();
Console.WriteLine($"{idGenerator.NextId()}");
// 1
Console.WriteLine($"{idGenerator.NextId()}");
// 2
}
}
ユニークであることが条件であればGUIDがありますし、永続性を考えるのであればSQLiteなどの自動採番があるので、使い道は限定的。
スレッドセーフにしたつもりですが、未検証。
コメント