1. 접근 제한 한정자
C#에서 멤버의 접근 범위를 결정하는 한정자입니다.
- public (클래스, 필드, 메서드) : 어디서든 접근 가능 (가장 개방적)
- private (필드, 메서드) : 같은 클래스 내부에서만 접근 가능 (기본 접근 수준)
- protected (필드, 메서드) : 같은 클래스 및 파생 클래스에서만 접근 가능
- internal (클래스, 필드, 메서드) : 같은 어셈블리(프로젝트) 내에서만 접근 가능
- protected internal (필드, 메서드) : 같은 어셈블리 또는 파생 클래스에서만 접근 가능
- private protected (필드, 메서드) : 같은 클래스 또는 같은 어셈블리 내의 파생 클래스에서만 접근 가능
2. 클래스 및 멤버 확장 관련 한정자
객체 지향 프로그래밍(OOP)에서 상속과 관련된 한정자입니다.
- abstract (클래스, 메서드) : 해당 클래스 또는 메서드가 반드시 상속받아 구현되어야 함
- sealed (클래스) : 상속할 수 없는 클래스
- virtual (메서드) : 오버라이딩이 가능한 메서드 지정
- override (메서드) : 부모 클래스의 virtual 또는 abstract 메서드를 재정의함
- new (필드, 메서드) : 부모 클래스의 멤버를 숨기고 새롭게 정의함
3. 정적(Static) 및 읽기 전용(Readonly) 한정자
인스턴스가 아닌 클래스 자체에 속하거나 변경 불가능한 값을 정의할 때 사용합니다.
- static (클래스, 필드, 메서드) : 인스턴스가 아닌 클래스 자체에 속하는 멤버
- const (필드) : 컴파일 타임 상수, 선언과 동시에 초기화 필요
- readonly (필드) : 런타임 상수, 생성자에서만 초기화 가능
4. 비동기 및 병렬 처리 관련 한정자
비동기 프로그래밍과 관련된 한정자입니다.
- async (메서드) : 비동기 메서드 정의
- await (메서드) : 비동기 메서드 실행 대기 (async 메서드 내에서만 사용 가능)
- volatile (필드) : 다중 스레드 환경에서 변수의 값이 최신 상태를 유지하도록 보장
5. 기타 한정자
기능적으로 특정한 의미를 가지는 다양한 한정자입니다.
- extern (메서드) : 외부에서 정의된 메서드(주로 P/Invoke에 사용)
- unsafe (메서드) : 포인터 연산 등을 허용하는 코드 블록 지정
- fixed (필드) : 가비지 컬렉션이 이동하지 못하도록 특정 변수를 고정
- partial (클래스, 메서드) : 하나의 클래스를 여러 파일에 나누어 정의 가능
'소프트웨어 공학 > 코딩' 카테고리의 다른 글
| C# 델리게이트와 이벤트 기반 프로그래밍 (1) | 2025.02.04 |
|---|---|
| C# 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 완벽 이해하기! (0) | 2025.02.03 |
| C# ConsoleKeyInfo 구조체(feat. Read(), SetCursorPosition()) (0) | 2025.01.27 |
| 유니티 GetActiveScene(), Transform.GetChild() (0) | 2025.01.22 |
| Math.Ceiling 메서드 (0) | 2025.01.21 |