오진이 블로그

[제프리 리처의 CLR via C#] 멤버 접근성 본문

Development/C#

[제프리 리처의 CLR via C#] 멤버 접근성

오늘도 진이 2021. 5. 18. 16:32

2부. 타입 설계

6장. 타입과 멤버의 기본

멤버 접근성

  • 멤버의 접근성은 해당 멤버와 타입을 참조하는 코드가 정상적으로 어느 영역까지를 참조할 수 있는지를 결정하는 기준이 된다.
  • IL 코드를 검증함으로써 참조하는 멤버의 접근성이 설령 컴파일러 수준에서 접근성에 대한 점검이 누락되었다고 할지라도 실행 중에 이를 검사하므로 기능성을 보장받을 수 있다.
  • C#에서는 선언하는 멤버에 명시적으로 한정자를 지정하지 않을 경우, 컴파일러는 모든 경우는 아니지만 대개 private 한정자를 자동으로 선택하여 적용하게 된다.
  • 상속받은 타입에서 기본 타입에 선언된 멤버를 재정의하는 경우, 컴파일러는 원래의 멤버를 필요로 하며 재정의하는 멤버의 기본 접근성을 그대로 가져온다.
  • 이렇게 원래보다 제한된 접근성을 가지도록 재정의된 메서드를 수정할 수 없는 이유는 상속받은 타입을 사용하는 쪽에서는 언제든 기본 타입으로의 캐스팅을 진행할 수 있고 기본 타입의 메서드를 통한 접근이 발생할 수 있기 때문이다.
Comments