C#에서 일부 식별자(identifier)는 코드의 특정 문맥 안에서만 특별한 의미를 가지는데, 이러한 키워드를 문맥 키워드(Contextual Keywords)라고 부릅니다.
문맥 키워드와 예약 키워드의 차이
일반적인 예약 키워드(reserved keyword)는 변수명이나 메서드명으로 사용할 수 없지만, 문맥 키워드는 특정 위치에서만 키워드로 해석될 뿐, 그 외의 상황에서는 일반 식별자로 자유롭게 사용할 수 있다는 점이 큰 차이입니다.
대표적인 예로 속성(property)을 정의할 때 사용하는 get과 set이 있습니다. 이들은 접근자(accessor) 선언부에서만 특별한 의미를 가지며, 다른 곳에서는 변수 이름 등으로 사용해도 컴파일 오류가 발생하지 않습니다.
C#의 주요 문맥 키워드 목록
다음은 C#에서 사용되는 대표적인 문맥 키워드들을 정리한 표입니다.
| 문맥 키워드 (Contextual Keywords) | ||||||
|---|---|---|---|---|---|---|
| add | alias | ascending | descending | dynamic | from | get |
| global | group | into | join | let | orderby | partial (type) |
| partial (method) | remove | select | set | value | var | when |
| where | yield | |||||
주요 문맥 키워드의 용도
LINQ 관련 키워드
from, select, where, group, join, into, let, orderby, ascending, descending 등은 LINQ(Language Integrated Query) 쿼리식에서 사용되는 키워드입니다.
속성 및 이벤트 관련 키워드
get, set은 속성 접근자를 정의할 때, add와 remove는 사용자 지정 이벤트 접근자를 구현할 때 사용됩니다.
기타 키워드
partial: 하나의 클래스나 메서드 정의를 여러 파일에 나누어 작성할 때 사용합니다.yield: 반복기(iterator)에서 값을 순차적으로 반환할 때 사용합니다.global: 전역 네임스페이스를 명시적으로 참조할 때 사용합니다.var: 지역 변수의 타입을 컴파일러가 추론하도록 할 때 사용합니다.dynamic: 런타임에 타입 검사가 수행되는 동적 타입 변수를 선언할 때 사용합니다.
이처럼 문맥 키워드는 언어의 표현력을 높이면서도 기존 코드와의 호환성을 유지할 수 있도록 설계된 C#의 중요한 기능입니다.