Autor Beitrag
kaufmann123
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 08.12.18 15:55 
Hallo,

Ich bin relativ neu in C# und habe ein ziemlich grundlegendes Problem in meinem Programm.

In meinem Hauptprogramm erstelle ich ein Array mit Mitgliedern eines Vereins.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
Mitglied[] personen = new Mitglied[4];
personen[0] = new Mitglied("Kaiha");
personen[1] = new Mitglied("Danally"1990);
personen[2] = new Mitglied("Jewalker"1950);
personen[3] = new Mitglied("Lucard");

Verein v2 = new Verein("Freunde", personen);

Nachdem der Verein erstellt wird, bekomme ich aber die Exception System.NullReferenceException und ich weiss nicht wieso.
Meine Klasse Verein sieht so aus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
    class Verein
    {
        public Mitglied[] Mitglieder;
        string Name;

        public Verein(string n, params Mitglied[] m)
        {
            this.Name = n;
            for (int i = 0; i < m.Length; i++)
            {
                Mitglieder[i] = m[i];
            }
        }
    }


Die Exception tritt auf nachdem die Mitglieder kopiert werden sollten, also Mitglieder[i] = null laut Debugger, wohingegend m richtig gefüllt ist.
Wie kann ich das lösen, dass m richtig in Mitglieder übergeben wird?

Moderiert von user profile iconChristian S.: Highlight- durch C#-Tags ersetzt
Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2260

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 08.12.18 16:16 
Hallo,

das Array Mitglieder muss in der richtigen Länge initialisiert werden:
ausblenden C#-Quelltext
1:
this.Mitglieder = new Mitglied[m.Length];					


Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: kaufmann123
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4050
Erhaltene Danke: 838

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Sa 08.12.18 17:12 
Eigentlich reicht aber hier (statt dem Neuanlegen des Arrays und der Zuweisung mittels der for-Schleife):
ausblenden C#-Quelltext
1:
this.Mitglieder = m; // Referenz auf das Array zuweisen					
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 08.12.18 18:35 
- Nachträglich durch die Entwickler-Ecke gelöscht -