Section 40.4: protected internal 액세스 한정자
protected internal
키워드는 중첩된 클래스, 속성, 메소드나 필드를 동일 어셈블리 내에서 접근하거나 다른 어셈블리 내의 상속된 클래스 내에서 접근하는 경우에만 접근을 허용한다:
어셈블리 1
public class Foo {
public string MyPublicProperty {
get;
set;
}
protected internal string MyProtectedInternalProperty {
get;
set;
}
protected internal class MyProtectedInternalNestedClass {
private string blah;
public int N {
get;
set;
}
}
}
public class Bar {
void MyMethod1() {
Foo foo = new Foo();
var myPublicProperty = foo.MyPublicProperty;
var myProtectedInternalProperty = foo.MyProtectedInternalProperty;
var myProtectedInternalNestedInstance =
new Foo.MyProtectedInternalNestedClass();
}
}
어셈블리 2
public class Baz: Foo {
void MyMethod1() {
var myPublicProperty = MyPublicProperty;
var myProtectedInternalProperty = MyProtectedInternalProperty;
var thing = new MyProtectedInternalNestedClass();
}
void MyMethod2() {
Foo foo = new Foo();
var myPublicProperty = foo.MyPublicProperty;
// 컴파일 에러
var myProtectedInternalProperty = foo.MyProtectedInternalProperty;
// 컴파일 에러
var myProtectedInternalNestedInstance =
new Foo.MyProtectedInternalNestedClass();
}
}
public class Qux {
void MyMethod1() {
Baz baz = new Baz();
var myPublicProperty = baz.MyPublicProperty;
// 컴파일 에러
var myProtectedInternalProperty = baz.MyProtectedInternalProperty;
// 컴파일 에러
var myProtectedInternalNestedInstance =
new Baz.MyProtectedInternalNestedClass();
}
void MyMethod2() {
Foo foo = new Foo();
var myPublicProperty = foo.MyPublicProperty;
// 컴파일 에러
var myProtectedInternalProperty = foo.MyProtectedInternalProperty;
// 컴파일 에러
var myProtectedInternalNestedInstance =
new Foo.MyProtectedInternalNestedClass();
}
}
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
40.6: protected 액세스 한정자 (0) | 2022.04.07 |
---|---|
40.5: internal 액세스 한정자 (0) | 2022.04.07 |
40.3: private 액세스 한정자 (0) | 2022.04.06 |
40.2: public 액세스 한정자 (0) | 2022.04.06 |
40.1: 다이어그램으로 표현된 각 액세스 한정자 (access modifier) 들 (0) | 2022.03.29 |