Entwickler-Ecke

C# - Die Sprache - System.NullReferenceException nach Übergabe von Array


kaufmann123 - Sa 08.12.18 15:55
Titel: System.NullReferenceException nach Übergabe von Array
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.


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:

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. - Sa 08.12.18 16:16

Hallo,

das Array Mitglieder muss in der richtigen Länge initialisiert werden:

C#-Quelltext
1:
this.Mitglieder = new Mitglied[m.Length];                    


Grüße
Christian


Th69 - Sa 08.12.18 17:12

Eigentlich reicht aber hier (statt dem Neuanlegen des Arrays und der Zuweisung mittels der for-Schleife):

C#-Quelltext
1:
this.Mitglieder = m; // Referenz auf das Array zuweisen                    


Delete - Sa 08.12.18 18:35

- Nachträglich durch die Entwickler-Ecke gelöscht -