2011-12-18 7 views
0

내 프로그램은 변경 레이블 텍스트 오류 C#을

추가 정보는

처리되지 않은 'System.NullReferenceException'형식의 예외가 WindowsFormsApplication10.exe 발생이 경고

작업 중지 개체의 여기

는 중지 코드입니다. 그것은 단지 StatusStrip이의 라벨과

string stripStatusL = "some text: " + keepValues[lastTaken].ToString(); 
       toolStripStatusLabel1.Text = stripStatusL; 

의 그 라벨의 텍스트를 변경하려고 해요. 일반적으로 StatusStrip없이 Label에서 작동합니다. 내 실수는 무엇입니까?

비주얼 스튜디오 2010 C#을

+4

코드를 디버깅하지 않고 Quick Watch를 사용하여 Null을 반환하는 식을 확인하십시오. – Tarik

답변

0

내 추측은 keepValuesnull 또는 lastTaken 인덱스/열쇠라고 할 것 (코드가 목록인지 사전인지 여부를 나타내는 코드가 아닙니다). 그 일반적인 이유는 폼 디자이너가 초기화시 외부 데이터를 전달하지 못할 수도 있기 때문입니다. 양식은 DesignMode 속성을 가지며, 필요한 경우 모의 데이터를 제공하는 데 사용할 수있는 양식에서 디자이너가 실행되는 경우 true입니다.

0

나는 keepValues[lastTaken]가 null의 추측에는 요.

이렇게 keepValues[lastTaken].ToString(); 너에게 NullReferenceException을 줄 것이다.

나는 디버거 프로그램을 단계별로 제시하고,

+0

그리고'keepValues' 자체가'null'이라면? – kol

+0

예, 가능합니다. –

0

NullReferenceException이 인스턴스가 null 것을 의미 널 (null) 인 개체를 확인 것입니다. null 인스턴스에 액세스하면 NullReferenceException이 발생합니다. 컨트롤이 null이 아닌지 확인하십시오. 그 위에 마우스를 올려 놓으면 중단 점을 설정하면 틀린 것을 볼 수 있습니다. keepValues 컬렉션 lastTaken에 키와 동일한를 포함하지 않는

0
  1. , 또는
  2. keepValues[lastTaken]는 존재하지만 그 값은 null입니다
+0

3.'keepValues' 자체가 null입니다. –

+0

아 물론! – Strillo

0
string[] keepValues=new string[5]; 
int lastTaken=6; 

string temp=keepValues[lastTaken].ToString(); 

이 그래서 마음에 당신이 배열에서 값에 액세스하는 데 사용하는 배열과 인덱스의 길이를 유지 제외

An unhandled exception of type 'System.NullReferenceException' occurred in WindowsFormsApplication10.exe 
Additional information: Object reference not set to an instance of an object. 

을 생성합니다.