Hat jemand eine Ahnung, warum dieses Stück von C# -Code Rückkehr x = 0
und y = 0
(ocassionally):C# Random.Next (min max.) Rückgabewert kleiner als min
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);
}
Nur ein Heads-up, sollten Sie die gleiche Instanz von 'Random' in diesem Fall verwendet werden. Es ist sehr wahrscheinlich, dass "x" und "y" die gleiche Zahl sind, da die beiden Random-Instanzen den gleichen Startwert haben. Was Ihren Fehler betrifft, scheint das nicht möglich zu sein, basierend auf dem Code, den Sie angezeigt haben (oder es gibt einen Fehler in 'Random' - was unwahrscheinlich ist). – vcsjones
@vcsjones Ich habe die gleiche Instanz verwendet, aber 0 0 wird immer angezeigt, also wechsle ich dazu. Übrigens ist meine Hauptfrage, warum die Next() - Funktion einen Wert zurückgibt, der kleiner als der von mir angegebene Wert ist. Danke – EagerToLearn
Ich würde vermuten, dass es ein Umstand ist, bei dem die obigen zwei Zeilen nicht wirklich laufen, obwohl Sie derzeit glauben, dass sie es taten. Unmöglich, nur von diesem Code zu unterscheiden. –