Autor Beitrag
RalphHoffmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 31.03.15 20:33 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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():

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        //Strukturierte Variable definieren
        struct kiste
        {
            public double breite;
            public double laenge;
            public double hoehe;
            public double volume;
            public string ID;
        }


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
static void Main(string[] args)
{
    //Ein 50-faches Variablenarray deklarieren
    kiste[] kleineKiste = new kiste[50];
.
.
.
.
         case 5:
             liste(kleineKiste);
             break;
      }
    }
    while (auswahl != 0);


Gruß
Ralph
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
static void Liste(???)
{
.
.
.
}


So in dieser Art....
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 31.03.15 21:04 
Hrmpf....:-)

Stimmt....
Ich habe den Kopf der Methode jetzt so:

ausblenden C#-Quelltext
1:
2:
3:
4:
static void Liste(kiste[] akiste)
{
...
}


und den Aufruf so:

ausblenden C#-Quelltext
1:
Liste(kleinekiste);					


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 31.03.15 21:07 
:zustimm:

Für diesen Beitrag haben gedankt: RalphHoffmann
RalphHoffmann Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Mi 01.04.15 18:48 
Hallo Th69,

jepp es klappt wunderbar!!

Danke!

Gruß
Ralph