A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet C# nyelv Üres, futtatható C# program: class Program public static void Main() A Main() egy függvény; ennek a törzsébe kell írni a program elindításakor végrehajtandó utasításokat C# futtatható program 1
Pontosvessző zár minden utasítást Több utasítás utasításblokkba foglalható a zárójelekkel (szekvencia) Ilyen utasításblokk pl.: a függvények törzse, a ciklusmagok, Utasítások Szekvencia ( utasítások egymás után írása, utasításblokkokba foglalás) Szelekció Legfeljebb kétirányú elágazás (if) Többirányú elágazás (switch) Iteráció Számlálós ciklus (for) Elöltesztelős feltételes ciklus (while) Hátultesztelős feltételes ciklus (do-while) Gyűjteményes ciklus (foreach) Strukturált algoritmikus szerkezetek if (feltétel) if (feltétel) else Ha a feltétel igaz, az if utáni, ha hamis, az else utáni utasítások hajtódnak végre zárójelek csak több utasítás esetén A feltételt kötelező () zárójelek közé tenni Legfeljebb kétirányú elágazás 2
switch (kifejezés) case érték1: break; case értékn: break; default: break; Azokat az utasítások hajtódnak végre, amelyek case ágában lévő érték a kifejezés értékével egyezik Ha egyikkel sem egyezik, a default ág hajtódik végre A kifejezés lehet egész szám, karakter, sztring, felsorolás típusú Minden ág végén kötelező a break használata Többirányú elágazás while (feltétel) Amíg a feltétel igaz, a ciklusmag utasításai újra és újra végrehajtódnak zárójelek csak több utasítás esetén A feltételt kötelező () zárójelek közé tenni Elöltesztelős ciklus do while (feltétel); Amíg a feltétel igaz, a ciklusmag utasításai újra és újra végrehajtódnak A ciklusmag egyszer feltételvizsgálat nélkül is lefut zárójelek mindig A feltételt kötelező () zárójelek közé tenni Hátultesztelős ciklus 3
for(inicializáció; feltétel; módosítás) Inicializáció: ciklusváltozó kezdőértékadása Feltétel: amíg a feltétel igaz, újra és újra végrehajtódik a ciklusmag Módosítás: a ciklusváltozó értékének módosítása zárójelek csak több utasítás esetén Számlálós ciklus foreach(típus ciklusváltozó in gyűjtemény) Gyűjtemény: tömb, lista, A ciklusváltozó minden lépés elején a gyűjtemény soron következő elemének értékét veszi fel A ciklusváltozó értéke csak olvasható zárójelek csak több utasítás esetén Gyűjteményes ciklus Deklaráció típusnév változónév = kezdőérték; Pl.: Értékadás int egész = 8; double valós; változónév = kifejezés; Változó érték lekérdezése Pl.: valós = 5 + 9 * egész / 3; Változók használata 4
Deklaráció típusnév[] tömbnév; Pl.: int[] számok; Tömblétrehozás tömbnév = new típusnév[elemszám]; Pl.: számok = new int[15]; Értékadás egy tömbelemnek Pl.: számok[3] = 8; Tömbelem értékének lekérdezése Pl.: int b = számok[2] * 5; Tömb elemszámának lekérdezése tömbnév.length Tömbök használata Meghatározzák A tárolandó érték értéktartományát Az értékkel végezhető műveleteket Az ábrázolás módját Fajtái a készítő alapján Beépített típusok Saját típusok Fajtái elemszám alapján Egyszerű típusok Összetett típusok Típusok Egész szám (s)byte, (u)short, (u)int, (u)long Valós szám float, double, decimal Logikai bool Karakter char Sztring string Egyszerű típusok 5
A programkódba beírt közvetlen értékek Fajtái (a beépített típusok szerint): Egész literál (pl.: 3) Valós literál (pl.: 3.14) típusa double! Karakter literál (pl.: c ) Sztring literál (pl.: Szöveg ) Logikai literál (true vagy false) A literál típusát egy utána írt betűvel is jelezhetjük Egész literál: u, l, ul Valós literál: f, d, m Literálok A C# szigorúan típusos nyelv Például értékadásnál a bal- és jobboldal ugyanolyan típusú kell, hogy legyen. Pl.: int a = 5; helyes int b = 5.6; hibás! double d = 3.3; helyes float f = 3.3; hibás! int c = éljsd ; hibás! Az értékek különbözőségéből adódó hibákat típuskonverzióval lehet feloldani Típuskonverzió Sztring -> Adott típus céltípusnév.parse(sztring) Pl.: Adott típus -> Sztring Pl.: int a = int.parse( 456 ); kifejezés.tostring() int a = 456; string s = a.tostring(); string s = 456.ToString(); Típus1 -> Típus2 (típus2)kifejezés Pl.: int a = (int)456.78; Típuskonverzió 6