Кто-нибудь есть идеи, почему эта часть C# код возврата x = 0
и y = 0
(ocassionally):C# Random.Next (мин макс.) Возвращаемое значение меньше, чем мин
public void NewPos()
{
int x = 0;
int y = 0;
while (lstPosition.Where(z => z.Position.X == x && z.Position.Y == y).Count() != 0) {
x = new Random().Next(4, 20) * 10;
y = new Random().Next(4, 20) * 10;
}
NewPos.X = x;
NewPos.Y = y;
Console.WriteLine(x + " - " + y);
}
нужно всего лишь головы, вы должны использовать один и тот же экземпляр 'Random' в этом случае. Как есть, очень * вероятно, что 'x' и' y' будут одинаковыми, так как два случайных экземпляра будут иметь одно и то же семя. Что касается вашей ошибки, это не кажется возможным на основе кода, который вы показали (или есть ошибка в «Случайном», что маловероятно). – vcsjones
@vcsjones Я использовал тот же экземпляр, но 0 0 продолжал появляться, поэтому я перехожу к этому. Кстати, мой главный вопрос: почему функция Next() возвращает значение меньше минимального значения, которое я предоставил? Спасибо – EagerToLearn
Я бы предположил, что это обстоятельство, когда эти две строки фактически не работают, хотя в настоящее время вы считаете, что они это сделали. Невозможно сказать только из этого кода. –