Страницы

Поиск по вопросам

вторник, 9 апреля 2019 г.

Почему не успевают генерироваться случайные числа? [дубликат]

На данный вопрос уже ответили: C# случайные числа 1 ответ Столкнулся с такой неприятной ситуацией. Нужно получить два случайных числа из одного метода. Сначала, в переменную X помещаем возвращаемое значение метода Remove, затем в Y снова помещаем результат работы того же метода. Мне выводит одни и те же числа, например: (80; 80), (-3; -3) и тп. Хотя через построчный Debug выводит разные X и Y. Такое чувство, что VisualStudio слишком быстро работает и Random не успевает сгенерировать новое число.
Вот код:
int x1, y1; x1 = circle1.Remove(); y1 = circle1.Remove(); Console.WriteLine("(" + x1 + "; " + y1 + ")");
Ведомый метод:
public int Remove() { Random rnd = new Random(); return rnd.Next(-99, 99); }


Ответ

Предложенный мой вариант с задержкой лучше рассматривать в самом крайнем случае, а еще лучше не рассматривать. Лучше сделать как советует Vladislav Khapin
class Circle { private static Random rnd = new Random();
public int Remove() { return rnd.Next(-99, 99); }
}

Комментариев нет:

Отправить комментарий