internal protected
와 private protected
는 C#에서 접근 제한자를 조합하여 사용하는 키워드이다. 이 둘까지 포함해서 C#에서는 접근제한자를 6가지라고 말하기도 한다. 세밀한 제어를 할 때 주로 사용하는 편이다.
public
, protected
, internal
, private
, private protected
, internal protected
internal protected
internal protected
로 지정된 멤버는 동일한 어셈블리 내의 모든 코드에서 접근할 수 있다.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{
// 여기서는 해당 멤버를 포함한 클래스를 상속하는 파생클라스라고 할지라도 접근할 수 없다.
}
}