접근제한자
접근 제한자는 클래스, 메서드, 변수, 속성 등의 멤버에 대한 접근 수준을 제한하는 역할을 한다.
이를 통해 캡슐화를 할 수 있으며, 클래스 내부의 상세 구현을 숨기고 외부에 제공할 것들만 노출함으로써 코드의 안정성을 높이게 된다.
종류
자주 사용되는 접근 제한자에는 public, private, protected, internal, protected가 있다.
- public : 가장 개방적인 접근제한자로, 어디에서나 해당 멤버에 접근할 수 있도록 한다.
- private : 가장 제한적인 접근제한자로, 해당 멤버가 선언된 클래스 내에서만 접근이 가능하다.
- protected : 해당 멤버가 선언된 클래스와 그 클래스를 상속받은 자식 클래스 내에서만 접근이 가능하고,
- internal: 같은 어셈블리 내에서는 모두 접근가능하도록 하는 반면에, 다른 어셈블리에서는 접근이 불가능하도록 제한한다.
추가적인 접근제한자
- protected internal
- protected는 어떤 어셈블리이든지 상관 없이 상속관계만 따지고, internal은 어셈블리만 따져서 제한하는데, protectedinternal같은 경우에는 내부 어셈블리라면 모두 허용하는 데다가 외부에서도 상속 받고 있다면 접근 가능하다.
- private protected
- 원래 protected는 다른 어셈블리의 클래스라도 해당 변수가 선언된 클래스를 상속받는다면 접근 가능하도록 하는데, private protected는 접근 범위를 같은 어셈블리 내의 자식 클래스만 접근 가능하도록 그 범위를 제한한다.
어셈블리?
.NET 프레임워크에서 프로그램의 실행 파일 또는 라이브러리 파일을 의미
.NET의 어셈블리는 프로그램의 논리적인 배포 단위이며, 코드와 관련 리소스를 하나로 묶어 배포하는 방법을 제공
C#의 접근제한자
Type기본 액세스 권한
class | internal |
struct | internal |
interface | internal |
record | internal |
enum | internal |
interface 멤버 | 공공 |
클래스, 레코드 및 구조체 멤버 | private |
'👾 내일배움캠프 > 🎮 TIL & WIL' 카테고리의 다른 글
내일배움캠프 55일차 TIL - InputSystem과 가상 조이스틱 (On-Screen Button / On-Screen Stick) (0) | 2023.10.31 |
---|---|
내일배움캠프 54일차 TIL - struct와 class (0) | 2023.10.29 |
내일배움캠프 52일차 TIL - ref와 out 한정자 (1) | 2023.10.25 |
내일배움캠프 51일차 TIL - Float과 Int (0) | 2023.10.24 |
내일배움캠프 50일차 TIL - WBS란? (협업 준비하기) (0) | 2023.10.24 |