2017-02-02 4 views
0

Also mein Code richtet im Grunde eine verknüpfte Liste. Jedes Ticketobjekt speichert entweder den Verweis auf ein anderes Ticketobjekt oder null. Die Methode .getNext() ruft den Verweis auf das nächste Objekt in der Liste ab. current ist das Objekt, das den Anfang der Liste darstellt, und die while-Schleifen durchlaufen die Liste und ändern den Strom, bis sich die Bedingungen ändern. Abschließend wird das Ticket, das als Parameter übergeben wurde, aktualisiert.Ich bekomme eine NullReferenceException, aber das Objekt ist nicht null

public void AddLowPTicket(Ticket ti) // doesnt check if front == null because AddTicket already does 
{ 
    Ticket current = front; 
    while(current.getPrio() == Priority.High && current != null) // cycles/skips through the list as long as Priority == High. 
    { 
     current = current.getNext(); 
    } 
    current.Print(); // *THIS WORKS* 
    while(current != null && current.getPrio() == Priority.Low) // *NullReferenceException: Obj ref not set to an instance of an obj.* 
    { 
     current = current.getNext(); 
    } 
    current = ti; 
} 

Dies ist die Druckmethode für das Ticket-Objekt. Es druckt die lokalen Variablen gut, was bedeutet, dass sie nicht null sind.

public void Print() 
{ 
    Console.WriteLine("{0}\nPriority:{1}", m_description, m_prio == Priority.High ? "High" : "Low"); 
} 

Warum stürzt es ab, wenn der aktuelle Wert nicht null ist und keine seiner Variablen.

+1

'current.getPrio() == Priority.High && current! = Null' Versuchen Sie, nach links und rechts zu wechseln. – AlexD

+0

@AlexD: Wie wird das das Problem lösen? @ N.Campos: was passiert in 'getPrio()' –

+1

Bist du * sicher * es passiert auf der Zeile, die du sagst, es ist? Sieht so aus, als ob es wahrscheinlich beim ersten "while" passiert - was AlexDs Kommentar lösen würde. Was sagt dein Debugger? Warten Sie, bis die Ausnahme gefunden wurde und prüfen Sie die relevanten Variablen. – Rob

Antwort

-2

Hallo Leute, vielen Dank für Ihre Zeit! Ich denke, es hat nicht richtig gebaut (irgendwie?). Nach dem Hinzufügen und dem Entfernen einiger Zeilen und dem Neuaufbau/Ausführen lief es ordnungsgemäß! Entschuldigung und nochmals vielen Dank!

Verwandte Themen