2017-02-02 1 views
0

그래서 내 코드는 기본적으로 연결된 목록을 설정합니다. 각 티켓 ​​객체는 다른 티켓 객체에 대한 참조 또는 null을 저장합니다. .getNext() 메소드는 목록의 다음 오브젝트에 대한 참조를 가져옵니다. current는 목록의 시작을 나타내는 객체이고 while 루프는 조건이 바뀔 때까지 현재를 변경하는 목록을 통과합니다. 마지막으로, 매개 변수로 전달 된 티켓에 전류를 설정합니다.NullReferenceException이 발생하지만 개체가 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; 
} 

이것은 Ticket 개체의 Print 메서드입니다. 그것은 로컬 변수를 출력하는데, 이는 null이 아님을 의미합니다.

현재가 null이 아니며 변수가 하나도없는 경우 충돌하는 이유는 무엇입니까?

+1

'current.getPrio() == Priority.High && current! = null' 왼쪽과 오른쪽으로 바꿔 봅니다. – AlexD

+0

@AlexD : 어떻게 문제가 해결 될까요? @ N.Campos :'getPrio()'내부에서 무슨 일이 일어나고 있습니까 –

+1

당신이 말하는 라인에서 일어난 것입니까? 아마 AlexD의 의견에 의해 해결 될 첫 번째'while '에서 일어난 것처럼 보입니다. 디버거는 뭐라고 말합니까? 예외가 발생하고 관련 변수를 검사 할 때까지 기다리십시오. – Rob

답변

-2

여러분 안녕하십니까? 나는 그것이 (어떻게 든?) 형성하지 않았다고 생각한다. 추가 한 다음 몇 줄을 지우고 재건/실행하면 제대로 실행됩니다! 죄송합니다. 다시 한 번 감사드립니다.

관련 문제