접근 가능 도메인

접근 가능 도메인 (C# 참조)

멤버의 접근 가능 도메인(accessibility domain)은 그 멤버를 참조할 수 있는 프로그램 구간이 어디까지인지 알려줘요. 멤버가 다른 형식 안에 중첩되어 있다면, 그 멤버의 접근 수준과 바로 바깥에 있는 포함 형식의 접근 가능 도메인이 함께 이 멤버의 접근 가능 도메인을 결정해요.

이 문서는 C#의 초기 버전에도 적용되는 내용이에요.

출처: Accessibility domain (C# reference)

본문

최상위 형식(top-level type)의 접근 가능 도메인은 항상 그 형식을 선언한 프로젝트의 프로그램 텍스트 전체를 포함해요. 쉽게 말해, 프로젝트 안의 모든 소스 파일이 도메인에 속한다는 뜻이죠. 반면 중첩 형식(nested type)의 접근 가능 도메인은 항상 그 형식을 선언한 형식의 프로그램 텍스트를 포함해요. 즉 도메인이 곧 형식 본문이고, 그 안의 모든 중첩 형식까지 포함하죠. 그리고 중첩 형식의 접근 가능 도메인은 결코 그 포함 형식의 도메인을 넘어서지 않아요. 아래 예시에서 이 개념들을 실제로 확인해 볼게요.

이 예시에는 최상위 형식 T1과, 중첩 클래스 두 개인 M1, M2가 있어요. 각 클래스에는 서로 다른 접근 수준으로 선언된 필드가 들어 있죠. Main 메서드에는 각 문 다음에 주석으로 해당 멤버의 접근 가능 도메인이 어디까지인지 적어 뒀어요. 접근할 수 없는 멤버를 참조하려는 문장은 주석 처리되어 있고요. 그 멤버에 접근했을 때 어떤 컴파일러 오류가 나는지 보고 싶다면, 주석을 하나씩 풀어서 확인해 보세요.

// snippets/csrefKeywordsModifiers.cs, id="4"

더 알아보기