접근 제한자(Access Modifier) : 외부로부터 타입(class, struct, inteface, delegate )나 위 타입들의 멤버들(method, property, event, field)로의 접근을 제한할 때 사용한다.
클래스 멤버는 5가지의 접근 제한자를 (public, internal, private, protected, protected internal) 모두 가질 수 있지만, 구조체(struct) 멤버는 상속이 되지 않으므로 3가지의 접근 제한자만 (public, internal, private) 가질 수 있다.
접근 제한자 |
클래스 내부 |
외부 클래스 |
파생(자식) 클래스 |
프로젝트 |
public |
○ |
○ |
○ |
○ |
protected |
○ |
|
○ |
|
internal |
○ |
○ |
○ |
|
private |
○ |
|
|
|
protected internal |
○ |
|
○ |
|
어셈블리는 하나의 단일한 단위로 존재하는 .NET의 실행 가능한 프로그램 또는 실행 프로그램의 일부이며 실행 및 배포의 단위라고 할 수 있다. C# 응용 프로그램 작성의 결과로 생긴 .exe 파일, 클래스 라이브러리 작성의 결과인 DLL이 각각 하나의 어셈블리 이다.
하나의 단일한 어셈블리 안의 모든 코드는 하나의 단일한 단위로 빌드, 배포되며 버전 번호가 부여되는데 각 어셈블리는 다른 프로그램들이 사용 할 수 있는 pulic class, 속성, 메소드 등을 노출하고, private으로 선언된 것들은 모두 어셈블리 안에 은폐된다.
internal
동일한 어셈블리 내에 있는 다른 타입들이 접근할 수 있다.
protected
파생 클래스에서 이 클래스 멤버에 접근할 수 있다.
private
클래스 내부와 구조체 내에서만 멤버에 접근 가능하다.
using System; |
'C# > 문법 및 기능' 카테고리의 다른 글
C# 인터페이스 (0) | 2019.08.18 |
---|---|
C# 구조체(Struct) (0) | 2019.08.14 |
자바와 C#의 차이점 (0) | 2016.12.27 |
C# NameValueCollection (0) | 2016.03.20 |
C# Dictionary 와 comboBox 연결 (0) | 2016.02.08 |