문제상황
static 메서드 내에 클래스 필드를 참조하였더니 위의 에러 메시지 출력됨.
결론
Static 메서드는 클래스로부터 객체를 생성하지 않고 직접 호출 가능하다.
따라서 static 메서드 내부에서는 클래스의 필드를 참조해서는 안된다.
원인
"static 메서드 내부에서 클래스의 필드를 참조해서는 안되는 이유"
- 필드를 참조하기 위해선 클래스 객체가 필요하다.
- static 메서드는 클래스 객체를 참조하여 호출되지 않기에 클래스 객체가 없어 필드를 참조할 수 없다.
- 클래스 필드는 클래스 객체가 생성된 이후, 객체를 통하여 해당 필드를 참조할 수 있다.
- static 메서드는 클래스 객체를 생성하지 않은 상태로 사용됨으로 참조 할 수 없는것이다.
'SW 개발 공부 > 실수 기록' 카테고리의 다른 글
VS Setup Project에서 버전 업데이트 방법 (0) | 2023.09.06 |
---|---|
쓰레드를 안전하게 종료시키는 방법 (0) | 2023.03.19 |
C# 오류) System.ArgumentNullException (0) | 2022.06.17 |
C언어 오류) function returns address of local variable [-Wreturn-local-addr] (0) | 2022.06.17 |
UDP 멀티캐스트 1 (0) | 2022.04.04 |