17 접근 제한자

vencott·2021년 6월 2일
0

C#

목록 보기
17/32

외부로부터 타입(클래스, 구조체, 인터페이스, 델리게이트 등) 혹은 그 타입 멤버들(메서드, 속성, 이벤트, 필드 등)로의 접근을 제한할 때 사용

  • public
    • 모든 외부(파생클래스 포함)에서 이 타입에 엑세스
  • internal
    • 동일한 Assembly 내에 있는 다른 타입들이 엑세스
  • protected
    • 파생클래스에서 이 클래스 멤버를 액세스
  • private
    • 동일 클래스/구조체 내의 멤버만 접근 가능

보통 클래스와 구조체는 네임스페이스 바로 밑에 선언하는데, 디폴트로 internal이 설정된다

interface와 enum의 멤버는 기본적으로 public이며, 멤버별 별도 접근 제한자를 명시하지 않는다

사용

클래스의 필드는 기본적으로 private(객체지향 원칙)

메서드/속성은 외부에서 호출해야 하는것은 public, 내부에서만 사용되는 것은 private

internal class MyClass
{
   private int _id = 0; 

   public string Name { get; set; }

   public void Run(int id) {}

   protected void Execute() { }
}

출처: http://www.csharpstudy.com/

profile
Backend Developer

0개의 댓글