Entwickler-Ecke
C# - Die Sprache - Struct Array an Methode übergeben
RalphHoffmann - Di 31.03.15 20:33
Titel: Struct Array an Methode übergeben
Hallo @all....
Ich* bin gerade dabei über die ils einen Informatik-Kurs zu machen. Habe bisher mit C# keine Erfahrungen....aber bisher klappte es ganz gut....kann etwas an Erfahrung aus VBA nutzen.
Jetzt habe ich bei einer Übung aber ein Problem. Ich soll eine "Lagerverwaltung" schreiben. Die Lagerbehälter sollen als Struct dargestellt werden. Es sollen 50 Behälter sein...ich muss also ein Struct-Array anlegen. Es soll unter anderem eine ID hinterlegt werden und auf Einmaligkeit geprüft werden. Das alles klappt super.
Aber an einer einfachen Ausgabe aller angelegter Kisten als Liste auf der Console...scheiter ich. Die Ausgabe soll in einer Methode erfolgen. Jetzt muss ich das Struct-Array an die Methode übergeben und dort mit einer for-Schleife ausgeben....so gesehen kein Problem, was ich nicht hinbekomme ist die Übergabe des Struct-Arrays an die Methode....ich habe bisher über Google nur Beispiele für reine Arrays gefunden.
Kann mir da jemand helfen?
Lieben Dank
Ralph
*Ich: Ralph, 45 Jahre jung :-) aus Wuppertal
Th69 - Di 31.03.15 20:43
Hallo und :welcome:
was genau klappt denn nicht? Du kannst einfach MyStruct[] als Methodenparameter angeben.
Ansonsten poste mal deinen Code und evtl. entsprechende Fehlermeldungen.
PS: Oh, hat die ILS jetzt zu C# gewechselt? Früher haben die immer WinForms mit C++/CLI gemacht (was schon seit Jahren nicht mehr unterstützt wird).
RalphHoffmann - Di 31.03.15 20:46
Hi Th69 :-)
mit c++ haben sie nur ganz kurz gearbeitet.... ;-)
Hier ein paar Codezeilen. Erst das Struct und dann aus Main():
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| struct kiste { public double breite; public double laenge; public double hoehe; public double volume; public string ID; } |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| static void Main(string[] args) { kiste[] kleineKiste = new kiste[50]; . . . . case 5: liste(kleineKiste); break; } } while (auswahl != 0); |
Gruß
Ralph
Th69 - Di 31.03.15 20:51
Und wie sieht der Kopf (Signatur) deiner Methode liste aus?
PS: Klassen/Strukturen sowie Methodennamen in C# sollten mit einem Großbuchstaben beginnen.
RalphHoffmann - Di 31.03.15 20:53
ok....danke für den Tip mit dem Methoden-Namen.
Die Methode Liste(...) habe ich noch nicht. Ich wollte, da sie nur auf dem Bildschirm ausgibt eine void-Methode.
C#-Quelltext
1: 2: 3: 4: 5: 6:
| static void Liste(???) { . . . } |
So in dieser Art....
Th69 - Di 31.03.15 20:56
Schau dir mal die Main-Methode an - dort wird ja auch ein Array übergeben - und nun ersetze string durch deinen Strukturnamen (bzw. du kannst dieselbe Deklaration verwenden, welche du auch als lokale Variable in der Main-Methode für das Array verwendet hast ;- ).
RalphHoffmann - Di 31.03.15 21:04
Hrmpf....:-)
Stimmt....
Ich habe den Kopf der Methode jetzt so:
C#-Quelltext
1: 2: 3: 4:
| static void Liste(kiste[] akiste) { ... } |
und den Aufruf so:
und mache jetzt mal weiter....es werden auf jeden Fall keine Fehler mehr angezeigt! :-)))
Vielen Dank für die Hilfe bis hierher....
Gruß
Ralph
ps.: Schön, dass hier auch Newbies geholfen wird...
Th69 - Di 31.03.15 21:07
:zustimm:
RalphHoffmann - Mi 01.04.15 18:48
Hallo Th69,
jepp es klappt wunderbar!!
Danke!
Gruß
Ralph
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!