Возможные дубликаты:
С# - повторное повторение одного и того же случайного числа
Генератор случайных чисел не работает так, как я планировал (С#)
У меня есть метод, который строит очередь ints:
public Queue<int> generateTrainingInts(int count = 60)
{
Queue<int> retval = new Queue<int>();
for (int i = 0; i < count; i++)
{
retval.Enqueue(JE_Rand.rInt(2001, 100));
}
return retval;
}
JE_Rand.rInt() - это просто функция, которая делегирует функцию класса Random:
public static int rInt(int exclUB, int incLB = 0)
{
Random rand = new Random(DateTime.Now.Millisecond);
int t = rand.Next(incLB, exclUB);
rand = null;
return t;
}
Но когда я вызываю generateTrainingInts, одно и то же число помещается в очередь каждый раз. Однако, если я изменяю rInt на использование статического экземпляра класса Random, вместо локального экземпляра (с областью действия, как он определен выше), то он работает корректно (enqueue random integers). Кто-нибудь знает, почему это происходит?
Изменить: Дорогой Ответчик, который не прочитал мой вопрос полностью, Как некоторые из вас отметили, я ищу хорошее объяснение, почему это происходит. Я не ищу решение проблемы с тем же номером, потому что я уже исправил это, как я сказал выше. Спасибо за ваш энтузиазм, хотя:) Я просто хочу понять такие вещи, потому что моя первая реализация поняла меня концептуально.