Bevezetés a C# nyelvbe Az alapok összefoglalása Farkas Csaba
2 Miről lesz szó az előadásban? A.NET működése A C# szintaxisa példákkal
A.NET működése Ismétlés
4 A.NET Framework működése Forráskód: VB, C#, J#, Cobol, stb. Közbülső nyelv:Microsoft Intermediate Language (MSIL vagy IL) Környezet specifikus futtatható kód Fejlesztőeszközök, pl. Visual Studio.net Futtatás előtti fordító: Just-in-time compiler
5 A.NET FrameWork szolgáltatásai Az MSIL kód nyelv és környezetfüggetlen, így hordozható. Elvileg minden rendszerre írható JIT fordító (Linuxra is). Az előállított kód menedzselt kód, amely a FrameWork által biztosított környezetben fut. (CLR - Common Language Runtime) A CLR új szolgáltatásai: szemétgyűjtés, kódrészlet jogosultságok beállítása, stb.
6 A FrameWork és a Visual Studio Maga a FrameWork ingyenesen letölthető futtatókörnyezet A Vista már tartalmazza A Visual Studio.net az MS által készített grafikus fejlesztői környezet. Alapban több nyelvet tartalmaz (VB, C#, C++, J#, stb.). Külső fejlesztők: nagyon sok nyelv Visual Studio Express: ingyenes
7 A C# nyelv A.NET-hez új nyelvet kreáltak Visual(!) Basic egyszerűsége + C++ hatékonysága C# programozási nyelv Első az egyenlők között A.NET környezet is ebben készült MSIL-ből C#-ba VB.Net és C# kapcsolata (tapasztalat)
A C# szintaxisa példákkal Lényegében C
9 Hello World! Első példánk DEMO: Hello World! konzol felületen class Program { static void Main(string[] args) { Console.WriteLine("Hello world!"); Console.ReadLine(); } }
10 Típusok, változók Erősen típusos: deklaráció, konvertálás Szokásos típusok Példa: Szám reciproka double a; Console.Write("a="); a = double.Parse(Console.ReadLine()); double c = 1/a; Console.WriteLine(c); Értékadás, egyenlőség: a = 2 //értékadás a == 2 //egyenlő-e a != 2 //nem egyenlő
11 Eljárások Csak függvények (metódusok) vannak DEMO: Reciprok számítás grafikus felületen private void OK_Click(object sender, EventArgs e) { double x,y; x = double.Parse( TB1.Text); y = reciprok(x); MessageBox.Show(y.ToString()); } private double reciprok(double x) { double y; y = 1 / x; return y; }
12 Névterek Túl sok függvényhívás van (Példa egy nem létező utasítással) Print? System.Printer.Print System.Console.Print System.IO.Print using System.IO; Print…;
13 Elágazás Havi szja kiszámítása a havi bérből: bér *= 12; if (bér < ) { adó = 0.18 * bér; } else { adó = (bér ) *.36; } adó /= 12; Logikai műveletek És = && VAGY = || NOT = !
14 Ciklus while string s = "Vakáció"; bool l = true; while (l) { Console.Write(s); } for for (int i = 0; i < 60; i++) { s = ' ' + s; Console.Write(s + "\r"); }
15 Vektorok használata Vektor deklarálása int[] v = new int[10]; Egy programozási tétel: int[] v = new int[] {1,4,3,8,3,9999,2,5,7,1}; int max; max= v[0]; for (int i=1; i max) max = v[i]; } A rendezés programozási tétele: Array.Sort(v);
16 További információk: A rendezvény honlapja:
Köszönöm a figyelmet! Farkas Csaba