0
所以我的代碼基本上設置了一個鏈表。每個票證對象或者存儲對另一個票證對象的引用,或者存儲空值。 .getNext()方法獲取對列表中下一個對象的引用。 current是表示列表開始的對象,while循環通過列表更改當前的列表直到條件改變。最後,它將電流設置爲作爲參數傳遞的票證。我得到一個NullReferenceException但對象不是空的
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;
}
這是Ticket對象的Print方法。它打印局部變量就好了,這意味着它們不是null。
public void Print()
{
Console.WriteLine("{0}\nPriority:{1}", m_description, m_prio == Priority.High ? "High" : "Low");
}
爲什麼如果current不是null並且它的變量都不是null,它會崩潰。
'current.getPrio()== Priority.High && current!= null'嘗試左右交換。 – AlexD
@AlexD:這將如何解決問題? @ N.Campos:'getPrio()'裏面發生了什麼' –
你確定*它發生在你說的那一行嗎?看起來它可能發生在第一個「while」上 - 這可以通過AlexD的評論來解決。你的調試器說什麼?等待它發生異常並檢查相關變量。 – Rob