2011. 11. 6. 14:05

 

1. 문제를 만나다

일관성 없는 엑세스 가능성:
'[대상]' 필드 형식이 '[다른 대상]' 필드보다 액세스하기 어렵습니다.

참고 : MSDN - 컴파일러 오류 CS0052

 

이 오류는 걸리면 난감합니다 ㅡ.-;;;

에러 위치가 애매하기 때문입니다 ㅎㅎㅎ

 

 

2. 원인

정말 초보적인 실수지만 자주 하는 실수로 상속에서 접근자를 잘못 써서 그렇습니다.

자식에서 사용하는 접근자는 부모와 같거나 더 접근하기 힘든 접근자를 사용해야 합니다.

 

 

3. 해결 방법

예를 들면 '퍼블릭(public)'이 아닌 클래스나 요소를 퍼블릭으로 선언하면 발생합니다.

부모는 프라이빗(private)인데 자식이 그보다 더 접근하기 쉬운 퍼블릭으로 선언했기 때문입니다.

 

이 경우 'claTest1'을 'public'로 선언하던지 생성할 때 퍼블릭을 빼주셔야 합니다.

 

이 규칙은 클래스, 메소드 가리지 않고 모두 적용됩니다.

 

 

마무리

클래스를 설계할 때 작게 설계할수록 걸릴 확률이 낮습니다.
클래스 분석이 쉬워지기 때문이죠.

'public' 과 'private'등의 접근자는 정확하게 구분하여 써야 합니다.
귀찮다고 퍼블릭으로 도배하면 잘못 설계된 클래스이고 프라이빗만 쓰다 보면 이 에러에 걸리죠 ㅎㅎㅎㅎ

그러니 모든 클래스는 아주작게 설계해야 오류 가능성도 적어지고 유지보수도 쉬워집니다.
물론 개발단계에서는 귀찮죠 ㅎㅎㅎㅎ