На данный вопрос уже ответили:
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);
}
}
Комментариев нет:
Отправить комментарий