Tétel adatlapja

CÍMLAP

Reiter István

C#

TARTALOM, BEVEZETŐ



Tartalom

1 Bevezető
1.1 A jegyzet jelölései
1.2 Jogi feltételek

2 Microsoft .NET Framework
2.1 A .NET platform
2.2 A C# programozási nyelv
2.3 Alternatív megoldások

3 "Hello C#!"
3.1 A C# szintaktikája
3.2 Névterek

4 Változók
4.1 Deklaráció és definíció
4.2 Típusok
4.3 Lokális és globális változók
4.4 Referencia- és értéktípusok
4.5 Referenciák
4.6 Boxing és unboxing
4.7 Konstansok
4.8 A felsorolt típus
4.9 Null típusok
4.10 A dinamikus típus

5 Operátorok
5.1 Operátor precedencia
5.2 Értékadó operátor
5.3 Matematikai operátorok
5.4 Relációs operátorok
5.5 Logikai és feltételes operátorok
5.6 Bit operátorok
5.7 Rövid forma
5.8 Egyéb operátorok

6 Vezérlési szerkezetek
6.1 Szekvencia
6.2 Elágazás
6.3 Ciklus

7 Gyakorló feladatok
7.1 Szorzótábla
7.2 Számológép
7.3 Kő - Papír - Olló
7.4 Számkitaláló játék

8 Típuskonverziók
8.1 Ellenőrzött konverziók
8.2 Is és as
8.3 Karakterkonverziók

9 Tömbök
9.1 Többdimenziós tömbök

10 Stringek
10.1 Metódusok
10.2 StringBuilder
10.3 Reguláris kifejezések

11 Gyakorló feladatok II.
11.1 Minimum- és maximumkeresés
11.2 Szigetek
11.3 Átlaghőmérséklet
11.4 Buborékrendezés

12 Objektum-orientált programozás - elmélet
12.1 UML
12.2 Osztály
12.3 Adattag és metódus
12.4 Láthatóság
12.5 Egységbezárás
12.6 Öröklődés

13 Osztályok
13.1 Konstruktorok
13.2 Adattagok
13.3 Láthatósági módosítók
13.4 Parciális osztályok
13.5 Beágyazott osztályok
13.6 Objektum inicializálók
13.7 Destruktorok

14 Metódusok
14.1 Paraméterek
14.2 Visszatérési érték
14.3 Kiterjesztett metódusok

15 Tulajdonságok

16 Indexelők

17 Statikus tagok
17.1 Statikus adattag
17.2 Statikus konstruktor
17.3 Statikus metódus
17.4 Statikus tulajdonság
17.5 Statikus osztály

18 Struktúrák
18.1 Konstruktor
18.2 Destruktor
18.3 Adattagok
18.4 Hozzárendelés
18.5 Öröklődés

19 Gyakorló feladatok III.
19.1 Faktoriális és hatvány
19.2 Gyorsrendezés
19.3 Láncolt lista
19.4 Bináris keresőfa

20 Öröklődés
20.1 Virtuális metódusok
20.2 Polimorfizmus
20.3 Lezárt osztályok és metódusok
20.4 Absztrakt osztályok

21 Interfészek
21.1 Explicit interfészimplementáció
21.2 Virtuális tagok

22 Operátor kiterjesztés
22.1 Egyenlőség operátorok
22.2 A ++/-- operátorok
22.3 Relációs operátorok
22.4 Konverziós operátorok
22.5 Kompatibilitás más nyelvekkel

23 Kivételkezelés
23.1 Kivétel hierarchia
23.2 Kivétel készítése
23.3 Kivételek továbbadása
23.4 Finally blokk

24 Gyakorló feladatok IV.
24.1 IEnumerator és IEnumerable
24.2 IComparable és IComparer
24.3 Mátrix típus

25 Delegate-ek
25. Események

26 Generikusok
26.1 Generikus metódusok
26.2 Generikus osztályok
26.3 Generikus megszorítások
26.4 Öröklődés
26.5 Statikus tagok
26.6 Generikus gyűjtemények
26.7 Generikus interfészek, delegate -ek és események
26.8 Kovariancia és kontravariancia

27 Lambda kifejezések
27.1 Generikus kifejezések
27.2 Kifejezésfák
27.3 Lambda kifejezések változóinak hatóköre
27.4 Névtelen metódusok kiváltása lambda kifejezésekkel

28 Attribútumok

29 Unsafe kód
29.1 Fix objektumok
29.2 Natív DLL kezelés

30 Többszálú alkalmazások
30.1 Application Domain -ek
30.2 Szálak
30.3 Aszinkron delegate-ek
30.4 Szálak létrehozása
30.5 Foreground és background szálak
30.6 Szinkronizáció
30.7 ThreadPool

31 Reflection

32 Állománykezelés
32.1 Olvasás/írás fileból/fileba
32.2 Könyvtárstruktúra kezelése
32.3 In-memory streamek
32.4 XML
32.5 XML DOM
32.6 XML szerializáció

33 Konfigurációs file használata

34 Hálózati programozás
34.1 Socket
34.2 Blokk elkerülése
34.3 Több kliens kezelése
34.4 TCP és UDP

35 LINQ To Objects
35.1 Nyelvi eszközök
35.2 Kiválasztás
35.3 Szűrés
35.4 Rendezés
35.5 Csoportosítás
35.6 Listák összekapcsolása
35.7 Outer join
35.8 Konverziós operátorok
35.9 "Element" operátorok
35.10 Halmaz operátorok
35.11 Aggregát operátorok
35.12 PLINQ - Párhuzamos végrehajtás

36 Visual Studio
36.1 Az első lépések
36.2 Felület
36.3 Debug
36.4 Debug és Release

37 Osztálykönyvtár


Bevezető

Általában ez az a rész, ahol a szerző bemutatkozik, kifejti a motivációit illetve köszönetet mond a környezete segítségéért. Nem fogok nagy meglepetést okozni, ez most is így lesz.

Az elmúlt két évben, mióta a jegyzet létezik rengeteg levelet kaptam, különféle témában. Egy közös pont viszont mindegyikben volt: a levélírók egy idősebb emberre számítottak, számos esetben tanárnak gondoltak. Ez alapvetően nem zavar, sőt jól esik, hiszen ez is bizonyítja, hogy sikerült egy "érett", mindenki számára emészthető könyvet készítenem. Most viszont - abból az alkalomból, hogy a jegyzet életében ekkora esemény történt, úgy érzem ideje "hivatalosan" bemutatkoznom:

Reiter István vagyok, 24 éves programozó. Bő tíz éve foglalkozom informatikával, az utóbbi hatot pedig már a "sötét" oldalon töltöttem. Elsődlegesen (vastag)kliens oldalra specializálódtam: ez ebben a pillanatban a WPF/Silverlight kettőst jelenti - bár előbbi közelebb áll a szívemhez. Jelenleg - munka mellett - az ELTE Programtervező Informatikus szakán folytatok tanulmányokat.

2008-ban elindítottam szakmai blogomat a "régi" msPortal-on - ez ma a devPortal akadémiai szekciójaként szolgál - és ekkor született meg bennem egy kisebb dokumentáció terve, amely összefoglalná, hogy mit kell a C# nyelvről tudni. Elkezdtem írni, de az anyag egyre csak nőtt, terebélyesedett és végül megszületett a jegyzet első százegynéhány oldalas változata. A pozitív fogadtatás miatt folytattam az írást és néhány hónap után az eredeti, viszonylag összeszedett jegyzetből egy óriási, kaotikus, éppenhogy használható "massza" keletkezett.

Ez volt az a pont, ahol lélekben feladtam az egészet, nem volt kedvem, motivációm rendberakni.

Eltelt több mint fél év, megérkezett 2010 és elhatároztam, hogy - Újévi fogadalom gyanánt - feltámasztom a "szörnyeteget". Az eredeti jegyzet túl sokat akart, ezért úgy döntöttem, hogy kiemelem az alapokat - ez gyakorlatilag a legelső változat - és azt bővítem ki. Ez olyannyira jól sikerült, hogy közel háromszoros terjedelmet sikerült elérnem a kiinduláshoz képest.

[...]


×