키워드는 C# 언어 문법을 정의하는 문자 토큰입니다.
키워드란 C#에 내장된 전용 단어들을 말하는데, 이 단어들은 고유한 기능을 가지고 있기 때문에 코드를 작성할 때 변수명, 함수명 등 다른 식별자로 사용할 수 없습니다. 그냥 쓰면 문법적 모호함이 생겨 컴파일 오류가 발생하기 때문입니다. 예를 들어 int는 정수 자료형을 뜻하는 단어인데 bool int = 12;처럼 변수 이름으로 쓰면 컴파일러가 코드를 해석하지 못합니다. int가 특수 기능에 할당된 예약어이기 때문이에요.
키워드에는 핵심 규칙 두 가지가 있습니다
키워드는 변수명이나 다른 식별자로 직접 사용할 수 없으며, 키워드 앞에 @ 기호를 붙이는 경우만 예외입니다. 모든 C# 표준 키워드는 전부 소문자로 작성하고 .NET 내장 자료형 이름은 파스칼 케이스(PascalCase) 규칙을 따릅니다.
| abstract | const | extern | int | override | sizeof | typeof | |
| as | continue | false | interface | params | stackalloc | uint | |
| base | decimal | finally | internal | private | static | ulong | |
| bool | default | fixed | is | protected | string | unchecked | |
| break | delegate | float | lock | public | struct | unsafe | |
| byte | do | for | long | readonly | switch | ushort | |
| case | double | foreach | namespace | ref | this | using | |
| catch | else | goto | new | return | throw | virtual | |
| char | enum | if | null | sbyte | true | void | |
| checked | event | implicit | object | sealed | try | volatile | |
| class | explicit | in | operator | when | while |
전역 예약어로 어떤 상황에서도 직접 이름으로 쓸 수 없고 반드시 @ 접두사를 붙여야 합니다
int @int; // 문법상 유효한 코드
int int; // 컴파일 오류 발생Code language: JavaScript (javascript)
문맥 키워드
문맥 키워드 (Contextual Keywords)
문맥 키워드는 특정 문법 구조 안에서만 키워드로 인식됩니다. 일반 키워드와 달리 코드의 다른 부분에서는 그냥 식별자로 사용할 수 있습니다.
| add | ascending | async | await | by | descending | dynamic |
| equals | from | get | global | group | in | into |
| join | let | on | orderby | partial | remove | select |
| set | value | var | where | yield |
오직 특정 문법 내에서만 예약어로 작동하며 그 외 곳에서는 변수명으로 직접 사용 가능
int var; // 허용됨, 형식 추론 구문 밖에서는 var가 키워드로 취급되지 않음
var num = 10; // 여기서 var는 키워드로 쓰여 암시적 형식 추론에 사용Code language: JavaScript (javascript)

앞 예시에서 동그라미로 표시한 단어들은 모두 키워드에 해당합니다.
Previous: 식별자 (Identifiers)
Next: 프로그램 진입점