이번에 다루어볼 오류 주제는 다음과 같습니다~
- 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 오류를 해결할 수 있을 것입니다. 발생한 오류에서 지시하는 객체를 확인하여 적절한 해결 방법을 적용해 보십시오~