Hallo und

,
das Problem ist, dass Random immer mit dem gleichen Wert initialisiert wird. Du legst in jeder Klasse ein neues Random-Objekt an (die sich deshalb untereinander nicht kennen). In der
MSDN-Doku steht, dass wenn man den gleichen Seed-Wert verwenden man die gleiche Zahlenfolge bekommt.
D.h. du musst in deiner RandomValue-Klass bei der Erzeugung von Random einen
unterschiedlichen Seed mitgeben. Den Seed wiederum könntest du von einer anderen Random Klasse bekommen. Dies ist aber sehr umständlich und auch unnötig, den du kannst über die RandomValue auch ein Random Objekt sharen (mit static).
C#-Quelltext
1: 2: 3: 4:
| class RandomValue { static Random randValue; } |
Dein Konstrukt an sich ist aber eher ungeschickt (wahrscheinlich lernst du geraden). Den generell kannst du alle auch short machen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| class Program { static void Main(string[] args) { Random randomizer = new Random();
int[] zahlen = new zahlen[4];
foreach(var zahl in zahlen) { zahl = randomizer.GetValue(); } } |
Gruß
PS: Hier im Forum kannst du über Bereiche oder [ cs] und [/ cs] COde als solchen anzeigen.