Autor Beitrag
americanaccounts
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 04.06.08 12:25 
Hallo Leute,

also ich habe mal wieder ein Problem.
Ich will einen bestimmten Kontostand ändern (angenommen vom Konto 123), dafür gebe ich einen neuen Wert an z.B. 5000, dieser Wert soll nun im Konto 123 aktualisiert werden.

Bei mir kommt aber immer ein Fehler, nämlich:

Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "double" angewendet werden.

Was hat dieser Fehler genau zu bedeuten?

Hier noch mein Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
/*Hier wird die Kontonummer des Empfängers eingebeben, damit das Array "weiß" in welche Spalte eingetragen werden soll
nameKonto[kontonummer] enthält den Namen von dem zurzeitigen Inhaber des Kontos*/


Console.WriteLine(nameKonto[kontonummer] + ", geben Sie die Kontonummer des Empfängers ein:");
stand.Empfaenger = Convert.ToDouble(Console.ReadLine());

//Wunschwert ist der aktuelle Betrag, stand.Betrag logischweise der zusätzlich eingezahlte Betrag
Console.WriteLine("Welchen Betrag wollen Sie einzahlen?");
stand.Betrag = Convert.ToDouble(Console.ReadLine());
stand.Wunschwert = stand.Wunschwert + stand.Betrag;

//Hier kommt jetzt der Fehler, die Arrayliste GeldAufKonto soll eingentlich den Wunschwert in die Liste an der Stelle stand.Empfaenger schreiben 
GeldAufKonto.Add(stand.Wunschwert[stand.Empfaenger]);


Ähm darf ich das überhaupt so schreiben?

Freue mich auf Hilfe.

lg micha
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 04.06.08 12:30 
Der Aufbau sieht extrem merkwürdig auf. Wozu hast Du eine eigene Klasse "GeldAufKonto" geschrieben? Das Setzen des Wertes eines Kontos sollte eine Methode einer Konto-Klasse sein.

Aber gut, zu Deinem Problem: stand.Empfaenger scheint ein Double zu sein. Die Indizes eines Arrays sind aber Int-Werte. Ändere also den Typ von stand.Empfaenger zu Int. Double macht eh keinen Sinn, oder hast Du mal 'ne Kontonummer mit Komma gesehen ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
americanaccounts Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 04.06.08 13:26 
Zitat:
Wozu hast Du eine eigene Klasse "GeldAufKonto" geschrieben?


Ne hab ich nicht, habe ne Arrayliste die GeldAufKonto heißst, erstellt:

ausblenden C#-Quelltext
1:
2:
//Arrayliste mit Kontostand
ArrayList GeldAufKonto = new ArrayList();


Zitat:

Aber gut, zu Deinem Problem: stand.Empfaenger scheint ein Double zu sein. Die Indizes eines Arrays sind aber Int-Werte. Ändere also den Typ von stand.Empfaenger zu Int. Double macht eh keinen Sinn, oder hast Du mal 'ne Kontonummer mit Komma gesehen


Hab ich am Anfang auch gedacht, aber das ist nicht der Fall..also schon du hattest i-wie recht, weil mein stand.Empfaenger war double, aber die anderen Variablen auch, damit gerade alles angepasst ist. Habe jetzt alles auf int umgeschrieben, aber rate Mal welcher Fehler jetzt kommt :)?

Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "int" angewendet werden.

Wenn ihr/du Codeteile brauchst, einfach nur sagen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 04.06.08 14:01 
Jo, hatte ich eben übersehen: Stand.Wunschwert ist kein Array

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
americanaccounts Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 04.06.08 16:56 
Ersteinmal Danke für deine bisherigen Antworten, ich bin auf jedenfall schon weiter gekommen...jetzt kommt es leider zu einer hoffentlich letzten Komplikation:

Ich habe den Wunschwert in ein Array verwandelt, das sieht jetzt so aus:

ausblenden C#-Quelltext
1:
2:
int[] wunschwert = { 1000 };
Array.Reverse(wunschwert);


Dann habe ich alle "stand.Wunschwert"'s durch wunschwert[0] ersetzt.
Funktioniert auch soweit - sogut! Jetzt allerdings wenn ich den neunen Änderungswert (wunschwert[0]) eintragen möchte dann kommt es logischweise zu einem Fehler. Hier eben der Quelltext:

ausblenden C#-Quelltext
1:
2:
3:
wunschwert[0] = wunschwert[0] - stand.Betrag;

GeldAufKonto.Add(wunschwert[stand.Empfaenger]);


Allerdings soll bei der Überweisung ja nicht das Array "wunschwert[x-beliebiger Wert]" (weil stand.Empfaenger ja dynmaisch veränderbar ist) sein, sondern es soll wunschwert[0][x-beliebigerWert] eingetragen werden...damit der neue Wert auch in das Konto eingetragen wird.

lg ;)

EDIT: Also ich will ja einen bestehenden Array-Listeneintrag mit einem neuem Eintrag überschreiben. Allerdings weiß ich nicht den (richtigen) Weg, wie ich das genau mache, ich bin vorher i-wie davon ausgegangen, dass ich es so mache:

Arrayliste.Add(variable[signalisierung-wo-der-wert-überschrieben-werden-soll]);

Jetzt ist die Variable aber ein Array und ich kenne die korrekte Schreibweise nicht.