static이 아닌 필드, 메서드 또는 속성 에 개체 참조가 필요합니다. (CS0120) 멤버는 인스턴스 참조를 사용하여 액세스할 수 없습니다. 대신 형식 이름을 사용하여 한정하세요. (CS0176)

이번에 다루어볼 오류 주제는 다음과 같습니다~

  • static이 아닌 필드, 메서드 또는 속성 에 개체 참조가 필요합니다. (CS0120) 오류에 대해 안내해드리겠습니다. 
  • 멤버는 인스턴스 참조를 사용하여 액세스할 수 없습니다. 대신 형식 이름을 사용하여 한정하세요. (CS0176)

각각 어렴풋이 읽어 보면 복잡해 보이는 오류 같은데, 실제로 해결하는 방법은 그렇게 어렵지 않답니다. C#에서 발생하는 CS0120 및 CS0176 오류는 주로 스태틱(static, 정적) 멤버에 인스턴스 참조를 시도할 때 발생합니다.

CS0120 오류 - 필드, 메서드, 속성(프로퍼티)

이 오류는 static이 아닌 필드, 메서드 또는 속성(프로퍼티)에 개체 참조가 필요하다는 것을 나타냅니다.

이를 해결하기 위해서는 해당 필드를 스태틱으로 선언하거나, 클래스의 인스턴스를 생성하여 처리하는 방법이 있습니다. 스태틱 클래스에서 논-스태틱 필드, 메섣, 프로퍼티를 호출하는 경우에 발생하기 때문입니다.

--필드, 메서드, 속성인 경우

심각도	코드	설명	프로젝트	파일	줄	비표시 오류(Suppression) 상태
오류	CS0120	static이 아닌 필드, 메서드 또는 속성 'Class_Name.Method_Name'에 개체 참조가 필요합니다. Project_Name File_Name 해당 없음

CS0176 오류 - 메서드인 경우

이 오류는 'Class_Name.Method_Name(string)' 멤버가 인스턴스 참조를 사용하여 액세스할 수 없다는 것을 나타냅니다.

보통 스태틱으로 선언된 멤버를 클래스의 인스턴스를 통해 접근을 시도할 때에 발생하는 오류입니다. 이를 해결하기 위해서는 해당 멤버에 대해 스태틱으로 접근해야 합니다.

--메서드인 경우

심각도	코드	설명	프로젝트	파일	줄	비표시 오류(Suppression) 상태
오류	CS0176	'Class_Name.Method_Name(string)' 멤버는 인스턴스 참조를 사용하여 액세스할 수 없습니다. 대신 형식 이름을 사용하여 한정하세요.	Project_Name File_Name 해당 없음

이러한 변경을 통해 CS0120 및 CS0176 오류를 해결할 수 있을 것입니다. 발생한 오류에서 지시하는 객체를 확인하여 적절한 해결 방법을 적용해 보십시오~

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗