Implicit módon beírt helyi változók deklarálása
A C#-fordító a színfalak mögött dolgozik, hogy segítséget nyújtson a kód írásakor. Képes az inicializáláshoz használt értékből kikövetkeztetni a változó adattípusát. Ebben a leckében ezzel a szolgáltatással, a helyi változók implicit típusmeghatározásával ismerkedhet meg.
Mik az implicit típusmeghatározású helyi változók?
Az implicit módon beírt helyi változót a var
kulcsszóval, majd egy változó inicializálásával hozza létre a rendszer. Példa:
var message = "Hello world!";
Ebben a példában egy sztringváltozó lett létrehozva a var
kulcsszó helyett a string
kulcsszó használatával.
A var
kulcsszó tájékoztatja a C#-fordítót, hogy az adattípust a hozzárendelt érték feltételezi . A típus vélelmezése után a változó ugyanúgy működik, mintha a tényleges adattípust használták volna deklarálásához. A var
kulcsszó a billentyűleütések mentésére szolgál, ha a típusok hosszadalmasak, vagy ha a típus nyilvánvaló a környezetből.
A példában:
var message = "Hello world!";
Mivel a változó message
azonnal az string
értékre "Hello World!"
van állítva, a C#-fordító megérti a szándékot, és minden példányt message
típuspéldányként string
kezel.
A változót valójában a rendszer a string
változóként írja be, message
és soha nem módosítható. Vegyük például a következő kódot:
var message = "Hello World!";
message = 10.703m;
A kód futtatásakor a következő hibaüzenet jelenik meg.
(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'
Feljegyzés
Más programnyelvek másként használják a var
kulcsszót. A C#-ban a változók típust rendelnek a fordítóhoz, függetlenül attól, hogy a tényleges adattípusnevet használja-e, vagy engedélyezi a fordító számára az adattípust. A típus tehát a deklarációkor rögzítve lesz, ezért soha nem lesz alkalmas más adattípusú értékek tárolására.
A kulcsszót var
használó változókat inicializálni kell
Fontos tudnivaló, hogy a var
kulcsszó a változó inicializálására használt értéktől függ. Ha a var
kulcsszót a változó inicializálása nélkül próbáljuk használni, a kód fordításakor hibaüzenetet kapunk.
var message;
Ha megkísérli futtatni ezt a kódot, a fordítás során a következő kimenet jelenik meg:
(1,5): error CS0818: Implicitly-typed variables must be initialized
Miért érdemes a var
kulcsszót használni?
A var
kulcsszó széles körben elterjedt a C# közösségben. Valószínű, hogy ha egy könyvben vagy online egy kód példáját látja, a var
tényleges adattípus neve helyett a használt kulcsszót fogja látni, ezért fontos megérteni a használatát.
A var
kulcsszónak fontos szerepe van a C#-ban. A változó típusa sokszor nyilvánvaló az inicializálásából. Ezekben az esetekben egyszerűbb a kulcsszó használata var
. A var
kulcsszó az alkalmazás kódjának tervezésekor is hasznos lehet. Amikor elkezd kódokat fejleszteni egy feladathoz, előfordulhat, hogy nem tudja azonnal, hogy milyen adattípust kell használnia. A használat var
segíthet a megoldás dinamikusabb fejlesztésében.
Első lépésként javasoljuk, hogy a változók deklarálásakor továbbra is használja a tényleges adattípusnevet, amíg a kód használata kényelmesebbé nem válik. Az változók konkrét adattípussal történő deklarálása segít a kód célratörő megírásában.
Összefoglalás
A kulcsszóról eddig az alábbiakat var
tanulta:
- A
var
kulcsszó arra utasítja a fordítót, hogy a változó adattípusát az inicializáló érték alapján határozza meg. - A kulcsszó valószínűleg más személyek kódjának olvasása közben jelenik
var
meg, azonban ha lehetséges, használja az adattípust.