한정자라고 할 때도 있고 리터럴이라고 할 때도 있고, 또 어떤 것은 한정자 및 연산자가 될 때도 있는 혼란스러운 C#의 키워드를 정리해보았습니다. 키워드를 정리하면서 제가 알고 있는 같이 쓰이는 키워드들은 '키워드~키워드' 혹은 '키워드 키워드'로 묶어놓았는데, 같이 쓰이는 것인데 묶여있지 않거나 단독으로도 쓰이는데도 묶여만 있다면 알려주시면 감사하겠습니다.
한 줄에 작성되어있는 키워드들은 자주 같이 쓰이는 것들로 묶어놓았지만, 본문의 한정자의 경우를 보면 알겠지만 메소드, 필드, 지역변수 등에도 두루두루 쓰이는 것일 때도 있습니다. 한 줄에 묶여있는 것들은 그냥 가독성 쪽으로 생각해주시면 됩니다.
문맥 키워드의 경우에는 '키워드*' 처럼 키워드 뒤에 '*' 표시를 해두었는데, 여러 키워드를 '~'로 묶어버리면서 같은 키워드에 '*'가 계속 들어갑니다만 통일성을 위해서 일부러 그렇게 작성하였습니다.
형식
- 기본 값 형식
- sbyte, byte, short, ushort, int, uint, long, ulong
- char
- float, double
- decimal
- bool
- 기본 참조 형식
- object, string, dynamic*
- 기타 형식
- void
- var*
한정자
- 접근 한정자
- public, internal, private, protected, protected internal
- 매개변수 한정자
- params, ref, out
- 제네릭의 형식 매개변수 한정자
- in, out
- 오버로드 한정자, 변환 한정자
- operator 오버로드 한정자, explicit operator 변환 한정자, implicit operator 변환 한정자
- 기타 한정자
- static, virtual, new, new virtual, override, sealed, abstract, partial*, unsafe, event, async*
- const, readonly, volatile
- global*::
- extern
문
- 선택 문
- if~else, switch~case~default
- 반복 문
- while, do~while, for, foreach~in
- 점프 문
- break, continue, goto, goto default, goto case, return
- 예외 처리문
- throw, try~catch~finally
- 형식 관련 문
- struct, enum
- namespace, class, interface, delegate
- 속성, 이벤트 관련 문
- add*~value*, remove*~value*
- get*, set*~value*
- 네임스페이스 관련 문
- using, using 지시문, using static 지시문
- extern alias* 지시문
- 기타 문
- yield* return, yield* break
- checked, unchecked
- unsafe, fixed
- lock
연산자
- is, as
- true, false
- sizeof, typeof, nameof
- new, await*, stackalloc
- checked, unchecked
- delegate
- default 리터럴 연산자
리터럴
- true, false
- null
제네릭 제약조건
- where*
- struct, class, new
참조자, 접근자
- this 참조자, base 접근자
질의식(쿼리)
- 절
- from*, where*, select*, group*, orderby*, join*, let*
- 절의 문맥 키워드
- group* 절의 문맥 키워드
- by*
- orderby* 절의 문맥 키워드
- ascending*, descending*
- join* 절의 문맥 키워드
- in*, on*, equals*
- select*, group*, join* 절의 문맥 키워드
- into*