Kata kunci adalah penanda karakter yang berfungsi mendefinisikan sintaks bahasa C#.
Kata kunci adalah kosakata bawaan C# yang memiliki fungsi khusus. Oleh karena itu saat menulis kode kamu tidak boleh memakainya sebagai nama variabel, fungsi atau pengidentifikasi lain, karena akan menimbulkan makna ganda. Sebagai contoh, int dalam C# digunakan untuk tipe bilangan bulat. Jika kamu mendeklarasikan variabel dengan nama int seperti bool int = 12;, kompiler tidak bisa memahami kode tersebut karena int merupakan kata cadangan dengan kegunaan khusus.
Ada dua aturan utama untuk kata kunci
Kata kunci tidak boleh langsung dipakai sebagai nama variabel atau pengidentifikasi lainnya, satu-satunya pengecualian adalah menambahkan awalan simbol @ di depan kata kunci. Semua kata kunci standar C# hanya menggunakan huruf kecil; sedangkan nama tipe bawaan .NET mengikuti aturan penamaan 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 |
Kata cadangan global, tidak bisa langsung dipakai sebagai nama di situasi apapun, wajib menambahkan awalan @
int @int; // Penulisan sah
int int; // Akan muncul galat kompilasiCode language: JavaScript (javascript)
Kata kunci kontekstual
Kata kunci kontekstual (Contextual Keywords)
Kata kunci kontekstual hanya berperan sebagai kata kunci di dalam struktur sintaks tertentu. Berbeda dengan kata kunci umum, di bagian kode lainnya kata ini bisa langsung dipakai sebagai pengidentifikasi.
| 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 |
Hanya berfungsi sebagai kata kunci pada sintaks khusus, di bagian lain bisa langsung jadi nama variabel
int var; // Diizinkan, var tidak dianggap kata kunci di luar inferensi tipe
var num = 10; // Di sini var menjadi kata kunci untuk inferensi tipe implisitCode language: JavaScript (javascript)

Semua kata yang dilingkari pada contoh sebelumnya termasuk kata kunci.