액세스 한정자

액세스 한정자 (C# 참조)

C#에서 타입이나 멤버가 "얼마나 공개적으로 보일 수 있는지"를 정하는 걸 접근성 한정자라고 해요. 코드를 외부에서 어떻게 사용할 수 있을지를 결정하는 아주 기본적인 개념이죠. C#은 네 가지 액세스 한정자를 제공합니다.

출처: Access modifiers (C# reference)

본문

먼저 네 가지 한정자부터 볼게요.

  • public
  • protected
  • internal
  • private

이 한정자들을 조합하면 모두 여섯 가지의 접근성 수준을 지정할 수 있습니다.

  • public: 접근 제한이 전혀 없어요.
  • protected: 포함하는 클래스 또는 그 클래스에서 파생된 타입으로 접근이 제한돼요.
  • internal: 현재 어셈블리로 접근이 제한돼요.
  • protected internal: 현재 어셈블리 또는 포함하는 클래스에서 파생된 타입으로 접근이 제한돼요.
  • private: 포함하는 타입으로 접근이 제한돼요.
  • private protected: 현재 어셈블리 안에서, 포함하는 클래스 또는 그 클래스에서 파생된 타입으로 접근이 제한돼요.

여기에 더해, 최상위(중첩되지 않은) 타입은 file 한정자도 사용할 수 있어요. 이렇게 선언된 타입은 현재 소스 파일 안에서만 보이죠. 파일 범위 타입(file scoped type)은 주로 소스 생성기에서 사용합니다. 단, file 한정자는 다른 어떤 액세스 한정자와도 결합할 수 없다는 점을 꼭 기억해 두세요.

이 섹션에서는 또 다음 개념도 함께 다룹니다.

더 알아보기