WinFuture-Forum.de: C# Oop: Array Funktioniert Nicht So Wie Es Soll... - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C# Oop: Array Funktioniert Nicht So Wie Es Soll...


#1 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. Februar 2005 - 17:53

morjen zusammen,

hier zu meinem Problem: Ich habe eine Klasse Ziehung. Da ich mit vielen Objekte dieser Klasse arbeite, habe ich mir ein "Ziehung-Array" (ziehungen) erzeugt.
Mit einer for-schleife (s.u.) rufe ich für jede Stelle im Array den Ziehung-Konstruktor auf. Und da liegt das Problem. Irgendwie besitzt jedes Objekt im Array die selben Werte, obwohl ich die Stelle explizit angebe
ziehungen[j] = new Ziehung(s[0], zahlen, int.Parse(s[7]));

Die if-Bedingung hat mir gezeicht, dass die Werte gleich sind.
Ich bin mittlerweile mit meinem Latein am Ende und keine Ahnung woran es liegen könnte.
Das int-Array (zahlen) ist auf jeden Fall immer anders.
Ich hoffe, einer von euch kann mir helfen.
Danke im Voraus!

Witi

for (int j = 0; j < len; j++)
{
	string[] s = (string[])daten[j];
	for (int k = 1; k < 7; k++)
	{
  zahlen[k-1] = int.Parse(s[k]);
  stats[int.Parse(s[k])-1]++;
	}

	ziehungen[j] = new Ziehung(s[0], zahlen, int.Parse(s[7]));
	if (j > 0) {
  Console.WriteLine(ziehungen[0].getZahlen()[0]);
  Console.WriteLine(ziehungen[1].getZahlen()[0]);
	}
}

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 20. Februar 2005 - 21:55

OK...ich habe meinen Fehler entdeckt! Man lernt echt nie aus :wink:
Hier für die, die es interessiert:
Es lag am int-Array (zahlen). Es wurde nur einmal außerhalb der for-Schleife initialisiert. Somit habe ich immer die Werte des selben Arrays geändert (zahlen[k-1] = int.Parse(s[k]):). Da jedes Ziehung-Objekt das selbe Array besaß, hatten natürlich alle die selben Werte. Der Trick ist also, am Anfang der äußerden for-Schleife ein neues int-Array-Objekt zu erzeugen.
for (int j = 0; j < len; j++)
{
zahlen = new int[6];
string[] s = (string[])daten[j];
for (int k = 1; k < 7; k++)
{
 zahlen[k-1] = int.Parse(s[k]);
 stats[int.Parse(s[k])-1]++;
}

ziehungen[j] = new Ziehung(s[0], zahlen, int.Parse(s[7]));
}

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0