internal protected 와 private protected 그리고 클래스 등등

냐옹·2024년 4월 11일
0

.NET

목록 보기
24/31

internal protectedprivate protected는 C#에서 접근 제한자를 조합하여 사용하는 키워드이다. 이 둘까지 포함해서 C#에서는 접근제한자를 6가지라고 말하기도 한다. 세밀한 제어를 할 때 주로 사용하는 편이다.

public, protected, internal, private, private protected, internal protected

  1. internal protected
  • internal protected로 지정된 멤버는 동일한 어셈블리 내의 모든 코드에서 접근할 수 있다.
  • 다른 어셈블리의 경우에는 해당 멤버가 포함된 클래스를 상속받는 파생클래스에서만 접근할 수 있다.
  • 즉, 이 접근 제한자의 적용을 받는 멤버는 동일한 어셈블리 내에서는 제한 없이 접근 가능하고, 다른 어셈블리에서는 상속을 통해서만 접근가능하다.
  1. private protected
  • private protected 이 접근 제한자는 internal protected보다 더 제한적이다. 오직 같은 어셈블리 내에서 상속받은 클래스로부터만 접근할 수 있다.

그러니까

namespace ~~ {

public class a{
	private protected void TestMethod(){}
}

private class b : a{
	base.TestMethod(); 이런식으로 접근가능
    
    // 참고로 java의 super와 c#의 base는 동일한 기능을 수행한다
}

}

namespace ~~2{
private class c :a{
	// 여기서는 해당 멤버를 포함한 클래스를 상속하는 파생클라스라고 할지라도 접근할 수 없다.
}
}

클래스 이것저것

    1. 클래스의 모든 멤버는 명시적으로 접근 지시자를 지정하는 것이 좋다. 아무것도 지정하지 않으면 private가 default로 지정되지만, 이걸 노렸다고 할지라도, private를 적어줘라.
    1. 그리고 private나 protected로 필드를 만든 이후에 꼭 필드 값을 조회하는 public 속성을 만들어야 한다. 접근을 통제해야하기 때문이다.

0개의 댓글