2011-10-06 1 views
1

가 발생합니다 String[] CAN = null;foreach 루프는 내가 쓰기 (생성자 전) 내 코드의 맨 위에있는 NullReferenceException

이 문자열 배열은 다른 함수에 업데이트됩니다. 나중에 내 코드에서

나는이 foreach 루프가 :

foreach (String str in CAN) 
{ 
    if(str.Contains("18FA07FE")) 
     cmdResult = true; 
    else 
     cmdResult = false; 
} 

내가 디버깅 시도를하고 foreach 문의 라인에서 나는 지금 CAN 문자열 배열이 성공적으로 업데이트되었는지 확인하고 있습니다 1211 개의 요소가 포함되어 있습니다.

그래서이 예외를주는 이유를 알 수 없습니다.

+1

글쎄? – BoltClock

+0

문자열 배열의 내용을 확인 했습니까? 배열의 요소 중 하나가 null 일 수 있습니다. :) – sailhenz

답변

4

문제가 표시된 코드와 설명 된 코드와 관련이 있고 배열에 요소가있는 경우 사실 가능한 유일한 설명은 CAN에있는 요소 중 하나가 null의 요소, 따라서 그것은 예외를 던지는 foreach는 자체 아니라,이 라인 : 당신이 NullPointer을받을 수 있나요

if (str.Contains(...)) 
    ^^^ 
    | 
    +-- null 
+0

나는 그것에 동의한다.. 나는 나의 첫 코멘트에서 말했듯이 문자열 배열을 점검한다. :) – sailhenz

+0

그래, 고마워, 문자열 배열의 마지막 요소가 null 인 것으로 밝혀졌다. 고쳐, 환호! – eightx2

0

? 루프인가 if인가? 배열에이 NPE를 던지는 'null'요소가 들어 있다고 생각합니다.

2

아마 문자열 값 중 하나가 예외가 발생하는 위치를 정확히 알고, 널

string [] CAN = { "first", "second", null, "fourth" }; 

      foreach (string str in CAN) { 
       if (str.Contains("fourth")) { 
        Console.WriteLine("Success"); 
       } 
      } 
관련 문제