1Danke
ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
1118
1118
EMPFEHLEN
-
Hallo allerseits,
für einen schulischen Test habe ich 4 Klasse erstellt von dennen jedoch nur 2 hier relevant sind.
undCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
class Person { private string name = null; private Datenbasis _daten = new Datenbasis(); public Person() { } public Person(String name) { this.name = name; _daten.addPerson(this); } public string getName() { return name; } }
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class Datenbasis { private List<Person> personenListe; public Datenbasis() { } public void addPerson(Person Person) { personenListe.Add(Person); } public List<Person> getPersonenListe() { return personenListe; } }
Mit Form1 wollte ich die Klassen testen:
1 Textfeld: txtPerson
1 Button: butPersonErstellen
1 ListView: lvPerson
Code :1 2 3 4 5
private void butPersonErstellen_Click(object sender, EventArgs e) { Person p = new Person(txtPerson.Text); lvPerson.Items.Add(p.getName()); }
Nun zu meiner eigentlichen Frage.
Ich möchte im Konstruktor von Person die damit erstellte Instanz übergeben. In meinem Fall habe ich jedoch keine Insatz und dachte mach könnte es vlt. auch so übergeben, was leider nicht geht.
public void addPerson(Person Person)
{
personenListe.Add(Person); <-- Fehler
}
Hier wird eine NullReferenceException geworfen.
Wie könnte ich das Problem elegant lösen?
Grüße,
Aero13
-
12.01.11 15:10 #2
Hi,
du solltest die Liste aber schon vorher erstellen:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
class Datenbasis { // Die Liste muss mit new erstellt werden, bevor du da Objekte hinzufügen kannst. private List<Person> personenListe = new List<Person>(); public Datenbasis() { } public void addPerson(Person Person) { personenListe.Add(Person); } public List<Person> getPersonenListe() { return personenListe; } }
Das sollte den Fehler mit der Exception beheben, was du allerdings noch machen möchtest verstehe ich nicht ganz.
Gruß
RudolfGGeändert von RudolfG (12.01.11 um 16:04 Uhr)
Technologien
(Gute) Grundkenntnisse: HTML, CSS
Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL
-
Okay, das wars vielen Dank.
Mussten nun nur noch aus
einCode :1
private Datenbasis _daten = new Datenbasis();
machen und nun funtkioniert es so, wie es soll.Code :1
private static Datenbasis _daten = new Datenbasis();
Die Form soll nur die Klasse testen, weshalb da lediglich das Textfeld für die Namenseingabe, samt Knopf zum Erstellen sind.
Außerdem noch die ListView die aufzeigt wer alles angelegt wurde.Geändert von Aero13 (12.01.11 um 15:25 Uhr)
Ähnliche Themen
-
Mit einer Klasse Objekte für eine andere Klasse erstellen.
Von New2Java im Forum Java GrundlagenAntworten: 14Letzter Beitrag: 21.11.10, 12:37 -
Wert(e) eines Sliders an eine andere Klasse übergeben
Von Bandit_profi im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 23.06.09, 18:15 -
Variablenwert von einer Klasse in eine andere Klasse geben
Von spiderman21 im Forum JavaAntworten: 2Letzter Beitrag: 02.01.07, 16:27 -
Eine Variable von einer Funktion an eine andere übergeben
Von pride im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.08.05, 22:59 -
Wie kann ich eine Kugel um sich selbst drehen?
Von Steffenbla im Forum 3D Studio MaxAntworten: 9Letzter Beitrag: 21.02.02, 12:56





Zitieren
Login





