Gyakori hibák C# programozásban Készítette: Major Péter
Elírjuk a változók nevét Ez a hiba nyilván mindenkivel előfordul. Mire figyeljünk? Kis és nagybetű számít Sokan használják ugyanazt a nevet eltérő betűmérettel, pl.: ha egy függvény beállítja egy osztály „PontokSzama” mezőjét, a paraméter lehet „pontokSzama” nevű. Ne cseréljünk fel betűket.
Tünetek Piros aláhúzás Ha a View / Error List menüponttal megjelenítjük az Error List ablakot: A kódkiegészítés nem ajánlja fel a változó nevét, és az utána leütött pontra sem jelenik meg metódus lista.
Elkerülés Használjuk a kódkiegészítőt: Már a „ps” begépelésekor felajánlja a PStart-ot, amit Enter-el elfogadunk. Ha nincs a listán a változó, amit keresünk, akkor már valószínűleg hibát követtünk el. Ha a lista nem jelenik meg gépeléskor, az szintén hibára utal. Ha a listát meg akarjuk jeleníteni akkor nyomjuk meg a Ctrl- Space billentyűkombinációt.
Lassú kódbevitel Ha mindent betűt begépelünk az egyrészt nagyon időigényes, másrészt vonzza a hibákat is. A parancsok gyors bevitele a kódkiegészítővel nagyon hasznos, és lehetőséget ad hibák elkerülésére is. Használat: pl. be akarjuk írni, hogy GameLogic.GenerateMap(10); ezt úgy tesszük meg, hogy beírjuk, hogy „ga” erre a listán megjelenik a GameLogic, erre enter, majd beírjuk a pontot és a „g” lenyomására a listán már kapjuk is a kívánt metódust, tehát megint Enter. Így egyrészt 2-3x olyan gyorsan lehet írni, másrészt garantált, hogy nem írjuk el valaminek a nevét. Ha a listán már ott ami nekünk kell, a le és fel nyíllal kiválasztva és Enter-t nyomva beszúrhatjuk.
Le nem zárt blokkok A C alapú nyelvek blokkos felépítésűek, a blokkokat a { és } jelek határolják. A blokkok egymásba ágyazása alapvető lehetőség, azonban sosem lehet átlapolódás. Fontos még, hogy figyeljünk arra, hogy egy függvénybe nem definiálhatunk másik függvényt (amely nyilván értelmetlen, de sokan megpróbálták ;). Utasítások csak függvényben lehetnek, változókat pedig mind a függvényekben, mind a típusok definiálásánál (pl.: class, struct) használhatunk. Névterekben közvetlenül csak típusdefinícók lehetnek, a változók, függvények mindig osztályokban vannak. A rendszer piros aláhúzással figyelmeztet, ha elszúrjuk a blokkok zárójelezését, de ez szinte mindig később jelentkezik, mint ahol hibáztunk, ezért nézzük végig az összes környező blokkot.
Egyéb gyakori hibák A tömbnél kapcsos zárójel kell: szamok[5] és nem szamok(5) A for ciklus fejlécében pontosvesszők vannak: for(int i=0; i<10; i++) A do{ … }while(…) után kell pontosvessző: do{ i++; }while(i<10); A sima while-nál viszont nem kell.