2009.02.17.
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() { utasítás(ok) } }
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
2009.02.17.
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) { utasítás(ok) }
if (feltétel) { utasítás(ok) } else { utasítás(ok) }
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 kötelezőek A feltételt kötelező () zárójelek közé tenni
Legfeljebb kétirányú elágazás
2
2009.02.17.
switch (kifejezés) { case érték1: utasítás(ok) break; … case értékn: utasítás(ok) break; default: utasítás(ok) 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) { utasítás(ok) }
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 kötelezőek A feltételt kötelező () zárójelek közé tenni
Elöltesztelős ciklus
do {
utasítás(ok) } 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 kötelezőek A feltételt kötelező () zárójelek közé tenni
Hátultesztelős ciklus
3
2009.02.17.
for(inicializáció; feltétel; módosítás) { utasítás(ok) }
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 kötelezőek
Számlálós ciklus
foreach(típus ciklusváltozó in gyűjtemény) { utasítás(ok) }
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 kötelezőek
Gyűjteményes ciklus
Deklaráció típusnév változónév = kezdőérték;
◦ Pl.:
int egész = 8; double valós;
Értékadás
Változó érték lekérdezése
változónév = kifejezés;
◦ Pl.:
valós = 5 + 9 * egész / 3;
Változók használata
4
2009.02.17.
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
Tömbelem értékének lekérdezése
◦ Pl.: ◦ Pl.:
számok[3] = 8;
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
Valós szám
Logikai
Karakter
Sztring
◦ (s)byte, (u)short, (u)int, (u)long ◦ float, double, decimal ◦ bool ◦ char ◦ string
Egyszerű típusok
5
2009.02.17.
A programkódba beírt közvetlen értékek Fajtái (a beépített típusok szerint): ◦ ◦ ◦ ◦ ◦
Egész literál Valós literál Karakter literál Sztring literál Logikai literál
(pl.: 3) (pl.: 3.14) típusa double! (pl.: ‘c’) (pl.: „Szöveg”) (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; int b = 5.6; double d = 3.3; float f = 3.3; int c = „éljsd”;
helyes hibás! helyes hibás! 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.:
int a = int.Parse(„456”);
Adott típus -> Sztring kifejezés.ToString()
◦ Pl.:
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