A kulcsszavak minden programozási nyelvben olyan védett, különleges kifejezések, amelyek a programozási nyelv alapját képezik. Ezen kifejezések nem használhatók változónevekként. Jelenleg csak felületesen lesz szó a kulcsszavakról. Részletesen a használatukkal a későbbi fejezetekben és a példakódokban fogunk megismerkedni.
A kulcsszavak C# esetén két kategóriára bonthatóak, mivel léteznek kontextusfüggÅ‘ kulcsszavak is. Ezek bizonyos körülmények között nem használhatóak azonosÃtókként. A legjobb, ha ugyanúgy teljes értékű kulcsszavaknak tekintjük és nem használjuk Å‘ket más célokra.
abstract
Osztályok esetén alkalmazható módosÃtó. Az ezzel a módosÃtóval megjelölt osztály csak más osztályok Å‘seként használható. Absztrakt osztályon belül metódusokra és tulajdonságok megjelölésére is alkalmazható. Az absztrakt tagokat a leszármaztatott osztálynak implementálnia kell.
as
TÃpus konvertáló művelet, ami referencia tÃpusok esetén alkalmazható. A művelet jobb oldalán található változó tÃpusát alakÃtja át a kifejezés bal oldalán található tÃpussá. Csak akkor lesz sikeres, ha a két tÃpus egymással rokonságban áll.
base
Örököltetett osztályokban az ősosztály tagjaira, metódusaira tudunk vele hivatkozni.
bool
Logikai adattÃpus, amely true (igaz) vagy false (hamis) értéket vehet fel. A kulcsszó a keretrendszerben a System.Boolean tÃpusra mutat.
break
ProgramvezérlÅ‘ utasÃtás, ami ciklus vagy feltételes utasÃtás (switch – case) megszakÃtásra szolgál.
byte
Egész szám adattÃpus 8 bites felbontással. ElÅ‘jel nélküli egész számok tárolására szolgál. Értéke 0 és 255 között változhat. A kulcsszó a keretrendszerben a System.Byte tÃpusra mutat.
case
ProgramvezérlÅ‘ utasÃtás, ami a switch utasÃtáson belül egy konkrét esetet jelöl.
catch
ProgramvezérlÅ‘ utasÃtás, futás idejű kivételkezelés megvalósÃtására szolgál. A try utasÃtás után kell elhelyezni.
char
Karaktert jelölÅ‘ adattÃpus, ami egy Unicode karaktert tárol UTF-16 kódolással. A kulcsszó a keretrendszerben a System.Char tÃpusra mutat.
checked
ProgramvezérlÅ‘ utasÃtás, ami egész számokat érintÅ‘ műveleteken túlcsordulás vizsgálatot és jelzést végez.
class
Referencia tÃpus jelzÅ‘je, segÃtségével tudunk osztályokat készÃteni. Egy osztály tartalmazhat metódusokat, adattagokat, tulajdonságokat, indexelÅ‘ket, műveleteket és beágyazott tÃpusokat is.
const
Érték tÃpusok esetén alkalmazható módosÃtó. Az ezzel a módosÃtóval megjelölt változó értéke már fordÃtási idÅ‘ben eldöntött és értéke a program futása során nem módosulhat.
continue
ProgramvezérlÅ‘ utasÃtás, ami a break utasÃtás ellentéte. Csak ciklusokban alkalmazható. Az utasÃtás hatására a ciklus a következÅ‘ végrehajtásra ugrik.
decimal
LebegÅ‘pontos adattÃpus, ami 128 bites fix pontos számábrázolást valósÃt meg. Használatával minimalizálható a lebegÅ‘pontos számokon végzett műveleteknél keletkezÅ‘ kerekÃtési hiba. Ennek köszönhetÅ‘en leginkább pénzügyi alkalmazásokban használatos. A kulcsszó a keretrendszerben a System.Decimal tÃpusra mutat.
default
ProgramvezérlÅ‘ utasÃtás, ami a switch utasÃtáson belül azt az esetet jelöli, amikor egyik case ág sem volt igaz, vagyis ez az alapértelmezett utasÃtás.
delegate
Referencia tÃpus, ami meghatározott formájú tagfüggvényeket tartalmazhat. A tagfüggvény formáját a delegate meghatározása Ãrja le. Leginkább a C és C++ függvénymutatóihoz hasonlÃt.
do
CiklusszervezÅ‘ utasÃtás. A ciklus tartalmának a végrehajtása mindaddig ismétlÅ‘dik, amÃg a ciklus végén lévÅ‘ feltétel hamissá nem válik. A könyvben és számos helyen is do – while ciklusként hivatkoznak rá, mivel a blokkhoz tartozó feltételt a while kulcsszó vezeti be.
double
LebegÅ‘pontos adattÃpus, ami IEEE754 szerinti 64 bites lebegÅ‘pontos értéket tartalmaz. A kulcsszó a keretrendszerben a System.Double tÃpusra mutat.
else
ProgramvezérlÅ‘ utasÃtás, amely egy olyan utasÃtást vagy utasÃtásblokkot tartalmaz, ami csak akkor hajtódik végre, ha az utasÃtást megelÅ‘zÅ‘ if utasÃtás kiértékelése hamis.
enum
Egész szám alapú adattÃpus, amely elÅ‘re meghatározott értékeket vehet fel. Alapértelmezetten az értékei 32 bites egész számként tárolódnak.
event
Események meghatározására szolgáló kulcsszó. Olyan delegate tÃpust határoz meg, ami akkor hÃvódik meg, ha a programunkban egy bizonyos esemény bekövetkezik.
explicit
Olyan tÃpus átalakÃtó műveletet jelöl, ahol a felhasználónak kötelezÅ‘ kikötnie a cél tÃpust. Alkalmazható referencia -és érték tÃpusokon is.
extern
Metódusok esetén alkalmazható módosÃtó. A futtatókörnyezeten kÃvüli natÃv függvények megjelölésére szolgál.
false
Logikai (bool) tÃpusú változó esetén a hamis értéket jelöli.
finally
ProgramvezérlÅ‘ utasÃtás, futás idejű kivételkezelés esetén egy olyan blokkot jelöl, ami a kivételkezelt utasÃtások után minden esetben (kivétel bekövetkezésekor is) lefut.
fixed
Változókra használható módosÃtószó, unsafe blokkban használható. A vele megjelölt változó fix memóriaterületre kerül, melynek tartalmát a szemétgyüjtÅ‘ nem helyezheti át.
float
LebegÅ‘pontos adattÃpus, ami IEEE 754 szerinti 32 bites lebegÅ‘pontos értéket tartalmaz. A kulcsszó a keretrendszerben a System.Single tÃpusra mutat.
for
CiklusszervezÅ‘ utasÃtás. Az utasÃtás három részbÅ‘l áll. Az elsÅ‘ kezdeti beállÃtásokat tartalmaz (kezdőérték), a második rész a cél feltételt határozza meg, mÃg a harmadik rész a ciklus elÅ‘rehaladását biztosÃtó utasÃtásokat határozza meg.
foreach
CiklusszervezÅ‘ utasÃtás, aminek a segÃtségével egy tömb, vagy egy IEnumerable felületet megvalósÃtó kollekció elemeit tudjuk bejárni.
goto
Feltétel nélküli ugró utasÃtás, aminek a segÃtségével a program végrehajtását az aktuális pontról egy másik cÃmkével megjelölt pontra tudjuk átugratni.
if
ProgramvezérlÅ‘ utasÃtás, amely a mögötte álló blokkot csak akkor hajtja vége, ha a hozzá kapcsolt feltétel igaz.
implicit
Olyan tÃpus átalakÃtó műveletet jelöl, ahol a felhasználónak nem kell kikötnie a cél tÃpust. A cél tÃpus a cél változó tÃpusából automatikusan kerül meghatározásra. Alkalmazható referencia -és érték tÃpusokon is.
in
A foreach és a from kulcsszavakkal együtt alkalmazható. Az in kulcsszó után áll az a változó, amit bejárunk a ciklusban, vagy amiből az elemeket válogatjuk ki.
int
Egész szám adattÃpus 32 bites felbontással, elÅ‘jeles számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.Int32 tÃpusra mutat.
interface
SegÃtségével olyan referencia tÃpust hozhatunk létre, ami leÃrja egy tÃpus tagjait, de nem határozza meg Å‘ket. Osztályok esetén a többszörös öröklés megvalósÃtásának a módja.
internal
Elérés módosÃtó, ami lehetÅ‘vé teszi, hogy a vele megjelölt osztályt, metódust, tulajdonságot, adattagot csak azonos szerelvényen (assembly) belül tudjuk elérni.
is
Művelet, ami képes futási idÅ‘ben eldönteni, hogy a kifejezés bal oldalán található változó tÃpusa megegyezik-e a kifejezés jobb oldalán álló tÃpussal. Referencia -és érték tÃpusok esetén is alkalmazható.
lock
Olyan blokkot jelöl, ami kritikus kódrészletet tartalmaz. A blokkban elhelyezett utasÃtássor egyszerre csak egy szál által végrehajtható.
long
Egész szám adattÃpus 64 bites felbontással, elÅ‘jeles számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.Int64 tÃpusra mutat.
namespace
SegÃtségével a tÃpusainkat csoportosÃthatjuk. SegÃt a név ütközések elkerülésében és megkönnyÃti a tÃpusokra való hivatkozást.
nint és nuint
C# 9 óta használható tÃpusok. Az nint egy egész számot definiál, ami 32 bites folyamatok esetén 32 bit méretű, mÃg 64 bites folyamatok esetén 64 bit méretű. Az nuint ugyanez, de elÅ‘ljel nélküli formátumban.
new
Objektumok példányosÃtására szolgáló művelet. MódosÃtóként is alkalmazható. Ebben az esetben az alaposztálytól származó tagok elrejtésére, felüldefiniálására szolgál az öröklési lánc megszakÃtásával.
null
Referencia tÃpusok esetén alkalmazható érték, ami azt jelzi, hogy a referencia nem mutat sehova.
object
A keretrendszerben a System.Object tÃpusra mutat. C# esetén minden tÃpus Å‘se.
operator
Osztályok és struktúrák esetén a műveletek definiálásánál és átdefiniálásánál használt kulcsszó.
out
Metódusok esetén alkalmazható paraméter módosÃtó. Az Ãgy megjelölt paraméter a metóduson belül csak Ãrható és kötelezÅ‘ értéket kapnia a metódus vége elÅ‘tt.
override
A polimorfizmus megvalósÃtására szolgáló kulcsszó. Az Å‘sosztályban virtual és abstract módosÃtóval megjelölt tagoknak adhatunk vele új megvalósÃtást, ami felváltja a régit.
params
Metódusok esetén alkalmazható paraméter módosÃtó. Azt jelzi, hogy a metódus változó paraméterszámmal is meghÃvható. A metódus definÃcióban csak az utolsó paraméter definiálásánál használható.
partial
Osztályok és metódusok esetén alkalmazható módosÃtószó. Azt jelzi, hogy az adott metódus vagy osztály definÃciója több fájlon keresztül Ãvel. Hasznos nagy méretű osztályok definiálásakor.
private
Elérés módosÃtó, ami azt jelzi, hogy a vele megjelölt metódus, tulajdonság vagy adattag csak az adott osztályon, struktúrán belül érhetÅ‘ el. Osztályok/Struktúrák esetén azt jelzi, hogy az adott osztály csak az adott névtéren belül érhetÅ‘ el.
protected
Elérés módosÃtó, ami azt jelzi, hogy a vele megjelölt metódus, tulajdonság vagy adattag csak az adott osztályon, struktúrán belül és a közvetlenül belÅ‘le leszármaztatott tÃpusokban érhetÅ‘ el.
public
Elérés módosÃtó, ami azt jelzi, hogy a vele megjelölt metódus, tulajdonság vagy adattag az adott osztályon, struktúrán kÃvülrÅ‘l is elérhetÅ‘. Osztályok/Struktúrák esetén azt jelzi, hogy az adott osztály a névtéren kÃvül is elérhetÅ‘.
record
C# 9 esetén tÃpus, C# 10 esetén módosÃtó osztályokhoz és struktúrákhoz. Ezzel a kulcsszóval megjelölt tÃpusokhoz a fordÃtó generálja az érték szerinti egyenlÅ‘séghez szükséges dolgokat, vagyis a tÃpus úgy viselkedik bizonyos korlátokkal, mint ha érték tÃpus lenne, még akkor is, ha referencia tÃpusokat tartalmaz.
readonly
Referencia tÃpusú adattagok esetén alkalmazható módosÃtó, ami azt jelzi, hogy az adattag csak a konstruktoron belül és egyszer kaphat értéket. Értéke az osztály életciklusa során nem módosulhat.
ref
Metódusok esetén alkalmazható paraméter módosÃtó. Az Ãgy megjelölt paraméter referenciaként kerül átadásra, ami azt jelenti, hogy a paraméter értékének módosulása a metóduson belül kihatással van az eredetileg átadott változó értékére.
return
Metódusban alkalmazható kulcsszó, segÃtségével értéket adhatunk vissza a metódusunkból. Végrehajtása után a program a metódus hÃvásának helyérÅ‘l folytatódik.
sbyte
Egész szám adattÃpus 8 bites felbontással, elÅ‘jeles számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.Sbyte tÃpusra mutat.
sealed
Osztályok esetén alkalmazható módosÃtó. Meggátolja, hogy a megjelölt tÃpus öröklésben részt vegyen.
short
Egész szám adattÃpus 16 bites felbontással, elÅ‘jeles számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.Int16 tÃpusra mutat.
sizeof
Operátor, ami egy érték tÃpus méretét adja vissza byte-ban.
stackalloc
Kulcsszó ami unsafe blokkban használható. SegÃtségével memóriát foglalhatunk a veremben. A lefoglalt memória méretét az adattÃpus mérete és a kulcsszó mellett álló kifejezés határozza meg. Egy mutatót ad vissza a lefoglalt memóriához, aminek a felszabadÃtásáról a szemétgyűjtÅ‘ nem gondoskodik.
static
TÃpus módosÃtó. Osztályokon, metódusokon, adattagokon és tulajdonságokon alkalmazható. Osztályon alkalmazva az osztály csak statikusnak jelölt metódusokat, adattagokat és tulajdonságokat tartalmazhat. A statikus tagok az osztályon belül nem a példányhoz kötÅ‘dnek, hanem a tÃpushoz, Ãgy ezekbÅ‘l a program teljes életciklusa alatt egy létezik.
string
Referencia adattÃpus, ami szövegeket reprezentál. A szövegek UTF-16 kódolású karakterekbÅ‘l épülnek fel.
struct
Érték tÃpus jelzÅ‘je, segÃtségével tudunk struktúrákat készÃteni. Egy struktúra tartalmazhat metódusokat, adattagokat, tulajdonságokat, indexelÅ‘ket, műveleteket és beágyazott tÃpusokat is.
switch
ProgramvezérlÅ‘ utasÃtás, a program a további futását egy változó értékétÅ‘l függÅ‘vé teszi. Az értékek a case és a default utasÃtásokkal adhatóak meg.
this
Csak példány (nem statikus) metódusokban és tulajdonságok kódjában alkalmazható. Az aktuális osztály példányát jelzi.
throw
ProgramvezérlÅ‘ utasÃtás, kivétel kiváltására szolgál. A kivétel azt jelzi, hogy elÅ‘re nem tervezhetÅ‘ vagy a normál használattól eltérÅ‘ dolog történt a programunkban.
true
Logikai (bool) tÃpusú változó esetén az igaz értéket jelöli.
try
Kivételkezelésre használt kulcsszó. Az utána álló blokkban megkÃsérli az utasÃtások végrehajtását. Ha ezek közül bármelyik kivételt vált ki, akkor a vezérlés az utána elhelyezett catch blokkban folytatódhat. A végén elhelyezhetÅ‘ finally blokk mindig lefut.
typeof
Egy objektum tÃpusát kérdezi le. A tÃpust System.Type osztályként kapjuk vissza, ami a reflection alapja.
uint
Egész szám adattÃpus 32 bites felbontással, elÅ‘jel nélküli számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.UInt32 tÃpusra mutat.
ulong
Egész szám adattÃpus 64 bites felbontással, elÅ‘jel nélküli számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.UInt64 tÃpusra mutat.
unchecked
ProgramvezérlÅ‘ utasÃtás, ami egész számokat érintÅ‘ műveleteken a túlcsordulás vizsgálatot és jelzést mellÅ‘zi. A checked ellentéte.
unsafe
Olyan kódrészletet jelöl, ami memória kezelés szempontjából nem biztonságos. Ilyen blokkokban tudunk alkalmazni mutatókat, amelyekkel kellÅ‘ körültekintéssel optimalizálni és gyorsÃtani tudjuk a programunk végrehajtását.
ushort
Egész szám adattÃpus 16 bites felbontással, elÅ‘jel nélküli számábrázolást valósÃt meg. A kulcsszó a keretrendszerben a System.UInt16 tÃpusra mutat.
using
Névterek használatba vételére szolgál, illetve használható blokként IDisposable felületet megvalósÃtó osztályoknál a tÃpus használatát befejezve automatikus Dispose() metódushÃvásra.
virtual
A polimorfizmus megvalósÃtására szolgáló kulcsszó. Tagfüggvényeken és tulajdonságokon alkalmazható. Az Ãgy megjelölt tagok kódja egy örököltetett osztályban átdefiniálható.
void
Üres tÃpus. Olyan metódusoknál alkalmazzuk, amelyeknek nem kell értékkel visszatérniük.
volatile
Azt jelzi, hogy az adott adattaghoz egyszerre több szál is hozzáférhet. Az Ãgy megjelölt változók a memóriában mindig ugyanott fognak elhelyezkedni.
while
CiklusszervezÅ‘ utasÃtás. A ciklus tartalma addig ismétlÅ‘dik, amÃg a while után álló feltétel igaz.