@AnotherAnkor

Почему при вызове функции из цикла повторяются «случайные» значения?

В цикле вызываю функцию формирования строки, которая в свою очередь уже вызывает функцию генерацию случайного значения, как показано ниже:
/// <summary>
		/// Генерация id операций.
		/// </summary>		
		string createDocId() {
			Random rnd = new Random();
			return((rnd.Next(100000000, 999999999)).ToString());
		}

из цикла вызываю функцию, которая вызывает показанную выше, кодом:
int flag = 0;
			while(numberOfOperations > 0){
				numberOfOperations--;
				if (flag > 0) {
					flag--;
					opCredit+=debetReturn(account,bankBIC);
				}
				else {
					flag++;
					opDebet+=creditReturn(account,bankBIC);
				}
			}

При этом генерируется простыня, состоящая из одной и той же строки.
Это какая-то особенность генератора случайных чисел?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@AnotherAnkor Автор вопроса
Нашёл ответ на вопрос "а как было бы сделать правильно":
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Griboks
@Griboks Куратор тега C#
Random rnd = new Random(); создаёт случайно число на основе текущего времени. Вы вызываете эту функцию много раз подряд, время одинаковое - результаты повторяются.
Ответ написан
Комментировать
2ord
@2ord
Экземпляр класса Random нужно создать лишь один раз.
https://stackoverflow.com/a/1785752/10118318
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы