C# 키워드와 식별자 이해: 규칙, 목록, 모범 사례
C# 키워드와 식별자
코드 구조와 동작을 정의하는 빌딩 블록인 C# 키워드와 식별자의 기초를 마스터하세요.
C# 키워드
키워드는 C# 컴파일러가 자체 용도로 예약한 미리 정의된 단어입니다. 그 의미는 고정되어 있으며 변경할 수 없고, 직접 식별자로 사용할 수 없습니다.
예를 들어:
long mobileNum;
여기서 long은 mobileNum이라는 이름의 long 타입 변수를 선언하는 키워드입니다. int, char, long 같은 키워드는 수정 없이 변수명으로 사용할 수 없습니다.
long long;처럼 키워드를 식별자로 사용하려 하면 컴파일 오류가 발생합니다. C#에는 79개의 예약 키워드가 있으며 모두 소문자입니다. 전체 목록은 다음과 같습니다:
| abstract | as | base | bool |
| break | byte | case | catch |
| char | checked | class | const |
| continue | decimal | default | delegate |
| do | double | else | enum |
| event | explicit | extern | false |
| finally | fixed | float | for |
| foreach | goto | if | implicit |
| in | in (제네릭 한정자) | int | interface |
| internal | is | lock | long |
| namespace | new | null | object |
| operator | out | out (제네릭 한정자) | override |
| params | private | protected | public |
| readonly | ref | return | sbyte |
| sealed | short | sizeof | stackalloc |
| static | string | struct | switch |
| this | throw | true | try |
| typeof | uint | ulong | unchecked |
| unsafe | ushort | using | using static |
| void | volatile | while | |
키워드는 @ 접두사를 붙이면 식별자로 사용할 수 있습니다:
int @void;
이는 @void라는 이름의 int 변수를 선언합니다.
문맥 키워드(Contextual Keywords)
예약 키워드 외에도 C#은 25개의 문맥 키워드를 정의합니다. 이 단어들은 특정 문맥에서만 특수한 의미를 가지며, 그 외에는 일반 식별자로 사용할 수 있습니다.
| add | alias | ascending |
| async | await | descending |
| dynamic | from | get |
| global | group | into |
| join | let | orderby |
| partial (타입) | partial (메서드) | remove |
| select | set | value |
| var | when (필터 조건) | where (제네릭 타입 제약) |
| yield | | |
각 키워드에 대한 자세한 내용은 공식 문서를 참조하세요: C# 키워드.
C# 식별자
식별자는 변수, 메서드, 클래스 및 기타 프로그램 요소에 이름을 부여합니다. 각 요소를 범위 내에서 고유하게 구별합니다.
예시:
int value;
여기서 value는 식별자입니다. @ 접두사 없이 예약 키워드를 사용하려 하면(예: int break;), 컴파일 타임 오류가 발생합니다.
변수에 대해 더 알아보려면 C# 변수를 참조하세요.
식별자 명명 규칙
- C# 키워드일 수 없습니다.
- 문자, 밑줄(
_), 또는 @ 기호로 시작해야 하며, 이후 문자는 문자, 숫자, 밑줄이 될 수 있습니다.
- 공백과 기타 기호(예:
$)는 허용되지 않습니다.
- 식별자는 대소문자를 구분합니다: getName, GetName, getname은 서로 다릅니다.
유효/무효 식별자 예시:
| 식별자 | 비고 |
| number | 유효 |
| calculateMarks | 유효 |
| hello$ | 무효 ($ 포함) |
| name1 | 유효 |
| @if | 유효 (키워드에 @) |
| if | 무효 (C# 키워드) |
| My name | 무효 (공백 포함) |
| _hello_hi | 유효 |
예제: 프로그램에서 키워드와 식별자 추출하기
간단한 Hello World 프로그램을 살펴보며 키워드와 식별자를 식별해 봅시다.
using System;
namespace HelloWorld
{
class Hello
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
이 스니펫의 키워드-식별자 쌍:
| 키워드 | 식별자 |
| using | System |
| namespace | HelloWorld |
| class | Hello |
| static | Main |
| void | args |
| string | Console |
| | WriteLine |
문자열 리터럴 "Hello World!"는 WriteLine에 전달됩니다.