[C#] 이름이 현재 컨텍스트에 없습니다. 오류코드 CS0103 해결 방법

C#에서 이름이 현재 컨텍스트에 없습니다. 오류를 해결하는 방법에 대해 알아보도록 합시다.

컨텍스트

이름이 현재 컨텍스트에 없습니다

컨텍스트(context)는 언어적인 해석을 하면 문맥 또는 맥락이라 할 수 있습니다. 언어 공부를 하다 보면 이러한 문제를 보신 적이 있을 겁니다. "문장의 비어 있는 부분에 들어갈 가장 적합한 것을 고르세요." 이때 우리는 해당 공란의 앞과 뒤의 문맥을 파악하여 빈 칸에 들어갈 수 있는 가장 적합한 문장을 찾습니다.

마찬가지로, 프로그래밍에서 말하는 컨텍스트 또한 비슷한 뜻으로 사용합니다. 프로그램의 실행을 위해 문맥에 맞는 값, 그리고 동작 등을 포괄적이거나 추상적으로 컨텍스트라고 지칭하는 것이지요.

이름이 현재 컨텍스트에 없습니다.

이름이 현재 컨텍스트에 없다는 것은 솔루션, 프로젝트, 더 좁게 보면 클래스나 메서드 내에서 해당 이름의 컨텍스트를 찾을 수 없을 때에 발생합니다. 컨텍스트에 없다는 오류는 워낙 범위가 넓기 때문에, 해당 현상이 발생한 부분을 중심으로 점검해 보아야 할 문제입니다. 다음은 이름이 현재 컨텍스트에 없을 때 확인해 볼만한 몇 가지 사항입니다. 이외에도 가능성은 있으니 살펴보시면 충분히 해결할 수 있을 것입니다.

  • 변수, 메서드 단순 오타
  • using 지시문을 누락하여 참조하려는 컨텍스트가 없는 경우
  • 접근 제어로 인해 선언을 시도한 변수가 변수가 실제로 선언이 이루어지지 않아서 컨텍스트에 없는 경우
  • partial class의 코드 클래스와 디자이너 클래스의 네임스페이스, 클래스 이름이 불일치하여 발생하는 경우 => 보통 클래스를 단순히 복사한 다음 코드 또는 디자이너 일부분만 임의로 이름을 수정하는 경우입니다.
  • 변수 또는 메서드를 사용하기 위해 외부 참조가 필요한 경우, 해당 참조가 프로젝트에 정상적으로 참조가 되지 않은 경우(파일 정리, 삭제 등으로 제대로 참조가 안 된 경우 포함)
  • 외부참조가 종속적이 아닌 프로젝트에 위치한 경우(실제로 참조 불가한 경우)
  • 이름의 중복으로 참조하려는 컨텍스트가 모호할 때, 이름이 현재 컨텍스트에 없다고 하는 경우도 있습니다.

이름이 현재 컨텍스트에 없습니다. 오류는 상기에서 말씀드렸듯이 원인 범위가 넓어서 발생하는 특정상황을 안내해 드리기는 어렵습니다만, 해당 오류 발생지점을 기준으로 차근차근 확인하다 보면 해결할 수 있습니다~

댓글