To jest naprawdę dziwne i nie rozumiem, dlaczego tak się dzieje. W cyklu foreach przeprowadzam iterację przez kolekcję klasy A i dla każdej klasy nazywam metodę Count()
, gdzie numery r1
i są generowane z zakresu [-1,1]. Problem polega na tym, że Random.Next
zwraca te same "losowe" liczby dla każdej instancji. Gdy wyniki dla pierwszej instancji to 0 i -1, te same zostaną zwrócone z kolejnych instancji. Proszę, czy możesz mi powiedzieć, dlaczego tak się dzieje? Ponadto nie mogę uzyskać różnych wyników w każdej instancji klasy A. Jest to kod:Random.Next zwraca zawsze te same wartości.
class a
{
Random rnd = new Random();
private void Count()
{
int r1 = rnd.Next(-1, 1);
int r2 = rnd.Next(-1, 1);
}
}
class b
{
List<a> listofA=new list<a>();
foreach (a ACLASS in listofA)
{
ACLASS.Count();
}
}
zapomniałem, jak również, Kiedyś miałem ten sam problem z powrotem w dniu dokonywania Bingo kartony klub, a wtedy użyłem najgorszego znanego mi sztuczki: Przerwanie wątku dla 2 panów Niedoświadczonych i zwariowanych ... Szalony, mam klasę, która tworzy losowe nazwy ze statyczną deklaracją losową na górze wszystkiego. –