Entwickler-Ecke
WinForms - Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Csharp-programmierer - So 20.03.16 11:50
Titel: Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Hallo meine lieben.
Ich habe mal wieder ein Problem. Unszwar habe ich eine Klasse HTML und eine Klasse mit einer Form Tags. Die Klass Tags bedient sozusagen die Klasse Tags.
Hier die KLasse HTML:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| public class HTML { public List<string> html { get; set; }
public HTML() { html = new List<string>(); }
public void Speichern(string Pfad) { try { using (FileStream file = new FileStream(Pfad, FileMode.Create)) { XmlSerializer s = new XmlSerializer(typeof(HTML)); s.Serialize(file, this); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } public static HTML Laden(string Pfad) { try { using (FileStream file = new FileStream(Pfad, FileMode.Open)) { XmlSerializer s = new XmlSerializer(typeof(HTML)); return (HTML)s.Deserialize(file); } } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } } } |
Die KLasse Tags:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| HTML _html;
public Tags() { InitializeComponent(); _html = HTML.Laden(Path.Combine(io.pHTML, "Tags.xml")); }
private void button1_Click(object sender, EventArgs e) { foreach (string s in _html.html) { MessageBox.Show(s); } }
private void button33_Click(object sender, EventArgs e) { try { if (this.comboBox1.SelectedIndex == 0) { _path = Path.Combine(io.pHTML, "Tags.xml"); _html.html.Add("Hallo"); }
_html.Speichern(_path); } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
Immer, wenn ich auf eine Propertie von _html zugreifen möchte, kommt der Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Ich habe doch aber ein Objekt von HTML erzeugt. Aber warum kommt dann dieser Fehler?
Moderiert von Th69: Titel geändert (war "Fehlermeldung")
Ralf Jansen - So 20.03.16 17:43
Zitat: |
Immer, wenn ich auf eine Propertie von _html zugreifen möchte, kommt der Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Ich habe doch aber ein Objekt von HTML erzeugt. Aber warum kommt dann dieser Fehler? |
Es wäre an der Zeit ein wenig Debugging zu üben. Wird den der Code der _html zuweist auch aufgerufen? Wenn du dir im Debugger die Stelle anschaust an der es knallt ist dann _html null oder die html Property von _html?
Csharp-programmierer - So 20.03.16 19:32
Also wenn ich der Liste etwas hinzufügen möchte (
_html.html.Add("Text")) kommt der Fehler und wenn ich den Inhalt der Liste abrufen möchte. Es wird aber gesagt, dass die XML Datei nicht gefunden werden kann. Liegt es vielleicht daran? Aber über die Speichern Methode müsste ja eigentlich die Datei erstellt werden
Moderiert von Th69: C#-Tags hinzugefügt
Csharp-programmierer - Di 22.03.16 19:36
Ich habe jetzt eine Bestätigung, dass das Objekt HTML null ist. Ich denke aber man kann diesem Objekt dann trotzdem etwas zuweisen?
Christian S. - Di 22.03.16 19:40
HTML ist eine Klasse und kann nicht null sein.
Meinst Du _html? Wenn das auch nach dem Konstruktor von Tags noch null ist, solltest Du mal in der Laden-Methode von HTML debuggen, warum die nicht das tut, was sie soll.
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!