Megjegyzések
A megjegyzések olyan szövegrészletek, amelyeket a fordító figyelmen kívül hagy. Ezen szövegrészletek a kész, végleges programunkba nem kerülnek bele. Elsődlegesen a kód megértését és dokumentálását teszik lehetővé.
Megjegyzés típusokból három különböző létezik C# esetén: egysoros, többsoros és dokumentációs. Az egysoros megjegyzés szintaxisa a következő:
//megjegyzés
A két perjel kezdetű üzeneteket a fordító megjegyzésnek tekinti. Az ilyen megjegyzések egészen az adott sor végéig tartanak. Nem kell a sor elején kezdődniük, állhatnak C# kód után is:
int valtozo = 11; //példa megjegyzés
A többsoros megjegyzések létrehozhatóak a dupla per jel segítségével, azonban ezen módszer használata kényelmetlen, mivel minden sor előtt ki kell tenni a // jelet. Éppen ezért bevezették a többsoros megjegyzés szintaxist, ami a következőképpen fest:
/*
Ez egy többsoros megjegyzés. A többsoros megjegyzés a /* karakter sorozattal
kezdődik és a */ karakter sorozattal végződik.
*/
A /* és */ jelölések akár egy sorban is szerepelhetnek:
/* Ez egy alternatív egy soros megjegyzés :) */
A többsoros megjegyzések nagy előnye, hogy segítségükkel a programunk egyes részeit tesztelési célból működésen kívül helyezhetjük. A felesleges, nem működő kódrészleteket ideiglenesen, törlés előtt tesztelési célból egy többsoros megjegyzésbe tesszük, majd ha az alkalmazás a kívánt működést produkálja így is, akkor töröljük a kódrészletet. Ezen mintát használva feleslegesen nem törlünk kódrészleteket.
A dokumentációs megjegyzések a programjaink automatikus, könnyített dokumentálását segítik. Az ilyen megjegyzések az osztályok egyes részeinél használhatóak. Tripla per jellel kezdődnek és egy osztály tag előtt állnak. Ha egy sort három per jel segítségével kezdünk, akkor a Visual Studio az adott elemhez legenerálja a dokumentációs bejegyzéshez tartozó XML tagokat. Ezen XML tagok megfelelő kitöltéséből a programunk írása közben kiegészítő adatokat kaphatunk program írás közben, illetve fejlesztői dokumentációt is készíthetünk könnyen. A dokumentáció készítésről és alkalmazásáról a későbbiekben részletesen lesz szó.
Formázás
A jó programkód ismertetőjegye, hogy szépen formázott. A formázás az olvashatóságot szolgálja. Egy nem jól formázott programban sokkal, de sokkal nehezebb az esetleges hibákat megtalálni, mint egy szép, átlátható programban.
A formázás hiánya a kód minőségét is rontja, mivel más által karbantarthatatlanná fog válni, úgynevezett spagetti kódot kapunk. A spagetti kód onnan kapta a nevét, hogy a rosszul formázott programok a legtöbb esetben olyanok, mint a főtt spagetti tészta: kibogozhatatlanok. Ezért minden blokk esetén használjunk egy tab behúzást, valamint üres sorokat is használhatunk az egyes részek elválasztásához blokkon belül is.
Nagy segítség, hogy a szerkesztő lehetőséget ad automatikus formázás használatára. Az automatikus formázás csak akkor működőképes, ha a programunkban nincsen hiba, elgépelés.
Az automatikus formázás menüből az Edit → Advanced → Format Document menüponton keresztül érhető el. Ha csak egy kijelölt szövegrészt szeretnénk formázni, akkor a Format Selection menüpont használható.
Billentyűzet kombinációja is van a műveleteknek, ahogy a menüben látható. Ezeket aktiválni úgy kell, hogy nyomva tartjuk a CTRL gombot, majd megnyomjuk a K ezután pedig a D gombot és csak ezután engedjük fel a CTRL gombot.
Változók megadása
A változó egy mennyiség vagy egy objektum szimbolikus jelölése. Programozás során azt a helyet értjük alatta, ahova értéket tudunk pakolni. A C# erősen típusos nyelv, ezért minden létrehozott változónak rendelkeznie kell egy típussal. Az alap típusokat áttekintettük egy korábbi fejezetben. Természetesen az alap típusokon kívül használhatunk és készíthetünk saját típusokat is. Ezeket nevezzük osztályoknak. Az osztályokból létrehozott változókat pedig objektumoknak.
A változó deklarálás1 szintaxisa a következő C# esetén:
típus vátozó_neve = érték;
változó nevekre vonatkozó megkötések:
- nem tartalmazhatnak szóközt
- a nyelv foglalt kulcsszavai nem használhatóak változó névként
- a változók nevei nem kezdődhetnek számokkal.
- Ékezetes betűk használhatóak a változók neveiben, azonban ajánlott kódolási séma, hogy ilyen karaktereket ne alkalmazzunk, mivel rontják a kód olvashatóságát. Mi sem örülnénk, ha egy kínai munkatárs a kódját kínai karakterek sokaságával szórná tele.
Az egész számok megadhatóak tízes, tizenhatos (hexa), nyolcas (oktális), és kettes (bináris) számrendszerben. Alapértelmezett formátum a tízes számrendszer. Ekkor sem a szám elé, sem a szám után nem kell módosítót tenni. Azonban vannak esetek, amikor más számrendszer formátumok jól jönnek.
- A fordító bináris számként értelmez egy számot, ha az 0b karakterekkel kezdődik.
- A fordító oktális számként értelmez egy számot, ha az 0 karakterrel kezdődik.
- A fordító hexadecimális számként értelmez egy számot, ha az 0x karakterekkel kezdődik.
A lebegőpontos számok esetén a tizedes részt pont karakterrel kell elválasztani, valamint a szám formátumát jelezni kell, ha nem double típusról beszélünk. Alapértelmezetten a fordító minden lebegőpontos számot double-re akar konvertálni, így ha az alábbi példában nem jelezzük a fordító számára, hogy a kifejezés float, akkor fordítási hibába fogunk ütközni:
float pelda = 3.14;
//fordítási hibát eredményez
A kifejezés típusának a jelzése lebegőpontos számok esetén úgy történik, hogy a szám megadását egy betű jelölővel fejezzük be. Három betű jelölő használatos C# esetén:
- f – Float típushoz
- d – Double típushoz. Kitétele double esetén nem kötelező, mivel minden lebegőpontos számot implicit módon a fordító double-nak jelöl
- m – Decimal típushoz
Az alábbi példakód különböző típusú változók létrehozását mutatja be:
namespace PeldaValtozok
{
class Program
{
static void Main(string[] args)
{
//10-es szamrendszerben megadott egesz
int egesz_szam = 42;
//előjeltelen
uint elojeltelen = 14U;
//az f jelzés jelöli a fordító számára,
//hogy ez egy float típus
float lebegopontos = 3.14f;
//double esetén nem kell külön jelölni
double d = 1124.333;
//egész szám hexadecimális formában
int hexa = 0xff;
//hosszú egész oktális formátumban
long okta = 07123235;
//hosszú egész
long hosszu = 1234L;
//ulong esetén UL jelzi, hogy előjeltelen egész
ulong elojeltelenhosszu = 1234UL;
//decimal típus esetén m betű jelzi, hogy a szám egy decimal típus
decimal penz = 1224.3m;
//A fordító a változó típusának string-et fog adni.
var valtozo = "Ez egy szöveg";
//futtatás közben fog eldőlni a típus.
//az eredmény típus szöveg lesz. A 44 szöveggé fog konvertálódni
dynamic dinamikus = "Ez egy " + 44;
}
}
}
Szövegek és karakterek esetén léteznek speciális vezérlőkarakterek. A vezérlő karakterek olyan karakterek, amelyek a szöveg megjelenését módosítják a képernyőn. A vezérlő karakterek jellemzője, hogy vissza per jellel kell őket megadni. A fontosabb vezérlőkarakterek:
\b – Backspace. Törli az előtte szereplő karaktert.
\t – Tab.
\n – Új sor
\r – Sor elejére helyezi a kurzort
\’ – Aposztróf karakter elhelyezése
\” – Idézőjel karakter elhelyezése
\\ – Visszafelé per jel
Ha a szövegünket @ karakterrel kezdjük, akkor szó szerint kerül értelmezésre, vagyis a string fordításból eltávolítja a vezérlő karakter értelmezést.
string szoszerint = @"Ez egy speciális\különlege's \t string";
-
Deklarációnak nevezzük egy forráskódnak azt a részét, amely egy azonosítót egy változóhoz, alprogramhoz, modulhoz, vagy más nyelvi elemhez köt. A deklaráció általában magába foglalja az elem típusának a meghatározását is.↩