Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

C# Alapok Krizsán Zoltán. Szabályok I Kis és NAGY betű érzékeny Szigorúan osztályok halmaza, azaz a kódok csak osztályon belül lehetnek. Az osztályok.

Hasonló előadás


Az előadások a következő témára: "C# Alapok Krizsán Zoltán. Szabályok I Kis és NAGY betű érzékeny Szigorúan osztályok halmaza, azaz a kódok csak osztályon belül lehetnek. Az osztályok."— Előadás másolata:

1 C# Alapok Krizsán Zoltán

2 Szabályok I Kis és NAGY betű érzékeny Szigorúan osztályok halmaza, azaz a kódok csak osztályon belül lehetnek. Az osztályok névterekbe vannak szervezve. Using a file elején. A rendszer minden esetben a Main fv.-t keresi, ha több van, akkor meg kell jelölni egy osztályt.

3 Szabályok II Minden utasítást pontos vessző zár. Utasítás zárójel a: {,}. A fájl neve és az osztály neve nem kell, hogy megegyezzen, sőt egy osztály több fájlban is lehet. A kiterjesztés megállapodás szerint „.cs”. Fordítás a csc.exe xxx.cs nyelvi fordítóval. Eredménye a xxx.exe (kis várakozás után fut, hogy miért arról később lesz szó)

4 Kifejezések 1 vagy több operandus + 0 vagy több operátor Literál: olyan konstans, melynek nincs neve. Operandus lehet bármilyen „értéket adó valami”: lokális változó, adattag, literál, konstans, fv. hívás

5 Érték típusok Közel 300 beépített érték típus Stack-en tárolódik. Automatikusan létrejön. Értékadás adatmásolás. Nem kell new operátor Létrehozáskor null-ra vagy 0-ra áll be. 2.0-tól Nullable kulcsszó a nem beállított értékre.

6 Érték típus egyszerű vagy primitív stack-en tárolódik alapértelmezett a következő esetekben: – lokális változó – Fv. paraméter – Fv. visszatérési érték

7 Egész típusok NameCTS TypeDescriptionRange (min:max) sbyteSystem.SByte8-bit signed integer-128:127 (-2 7 :2 7 -1) shortSystem.Int1616-bit signed integer-32,768:32,767 (-2 15 : ) intSystem.Int3232-bit signed integer-2,147,483,648:2,147,483,647 ( : ) longtSystem.Int6464-bit signed integer-9,223,372,036,854,775,808: 9,223,372,036,854,775,807 ( : ) byteSystem.Byte8-bit unsigned integer0:255 (0:2 8 -1) ushortSystem.UInt1616-bit unsigned integer 0:65,535 (0: ) uintSystem.UInt3232-bit unsigned integer 0:4,294,967,295 (0: ) ulongSystem.UInt6464-bit unsigned integer 0:18,446,744,073,709,551,615 (0: )

8 Nem egész típusú szám NameCTS TypeDescriptionSignificant Figures Range (approximate) floatSystem.Single32-bit single- precision floating point 7±1.5 × 10 −45 to ±3.4 × doubleSystem.Double64-bit double- precision floating point 15/16±5.0 × 10 −324 to ±1.7 × NameCTS TypeDescriptionSignificant Figures Range (approximate) decimalSystem.Decima l 128-bit high precision decimal notation 28±1.0 × 10 −28 to ±7.9 × 10 28

9 Felhasználói érték típusok felsorolt - enum Struktúra (van némi hasonlóság az osztályhoz, de lényegesen más) – C# struct

10 Referencia típusok Közel 2500 beépített referencia típus. System.Object, System.String, System.Text.StringBuilder, System.Array, …. System.Exception Referencia „pointer” a stack-en, tényleges adat a heap- en Az adat rész akkor jön létre, ha a programozó létrehozza. Felszabadítás a szemétgyűjtő, „garbage collection” feladata. Értékadás referencia másolás (ugyanarra mutat)

11 String, StringBuilder string, String: – UTF-16 karakterekben tárol – nem módosítható, változás eredménye új példány. – Concat, Join, System.String.Format("{0} times {1} = {2}", i, j, (i * j)); – +, =, !=, == szövegre értelmezetten. StringBuilder: – Módosítható szöveg – Konstruktornak megadható a kívánt méret, de igény szerint növekszik

12 String II Részszting: s3.Substring(7, 2) csere: s3.Replace(”mit”, ”mire”) Karakter keresés: s3.IndexOf("C"); Betűk elérése: s3[5] // 6.betű

13 Érték kontra referencia Érték: – Minden típus közvetlenül a System.ValueType vagy System.Enum (System.ValueType az őse) osztályból származik. – Lepecsételt (sealed): nem lehetnek más elemeknek ősei Referencia: – a szemétgyűjtő által vezérelt heap-ban tárolódik (a cím a stack-ben) – Erős típus referencia: frissül, ha a szemétgyűjtő mozgatja az elemet

14 Escape szekvencia A szövegekben a ‘\’ jel után álló karakterek máshogy viselkednek. – ‘\' – ”\" – \\\ – Csengő\a – Törlés\b – Form feed\f – Új sor\n – Kocsi vissza\r – antiescape

15 Változó deklaráció Típus azonosító; Utasítás lett, azaz bárhova elhelyezhető, ahol utasítás állhat. Váltózó lehet: – Adattag – Lokális változó Lokális változó élettartama a hatáskör vége „}” Lokális változónak explicit be kell állítani a kezdőértékét mielőtt használnánk! (fordítási hiba, ha nincs)

16 Változó II Lokális változót lehet egy beágyazott blokkban is definiálni, de: public static int Main() { int j = 20; for (int i = 0; i < 10; i++) { int j = 30; // Hiba, ilyen lokális változó már van! Console.WriteLine(j + i); } return 0; }

17 Konstans Inicializálni kell definíció során. Később nem lehet az értékét változtatni. Az értéke fordítási időben kiértékelhető kifejezés kell legyen (operandus: literál, vagy másik konstans) Automatikusan statikus lesz, és nem is lehet ezt már megadni.

18 Tömbök I Alaptípus[] azonosító; // deklaráció Aztán később: azonosító = new Alaptípus[méret]; //létrehozás Első elem indexe 0, utolsó n-1 Pl.: int[] t = new int[100]; ekkor első elem:t[0], utolsó elem: t[99] Ha 1 lépésben szeretnénk deklarálni és lefoglalni, sőt feltölteni elemekkel, akkor: int[] t = new int[2]{12,23}; vagy int[] i = {1,2};

19 Tömbök II System.Array osztály példánya Több dimenziós tömb: – int[,] squareArray = new int[2,3]; – int[,] squareArray = {{1, 2, 3}, {4, 5, 6}}; Jagged (nem egyenméretű) int[][] jag = new int[2][]; jag[0] = new int [4]; jag[1] = new int [6];

20 Tömbök III Length : csak olvasható tulajdonság a tömb mérete Rank: dimenzió Több interfészt is implementál, ezekről később.

21 Helló világ using System; namespace HelloWorld { class Hello { static void Main() { System.Console.WriteLine("Hello World!"); }

22 Main fv. class TestClass { static void Main(string[] args){ System.Console.WriteLine(args.Length); } Main visszatérési értéke vagy void vagy int. Paramétert vagy definiálunk, vagy nem. Ha igen akkor a parancssori argumentumok vannak benne.

23 Utasítások Utasítás lehet: – Lokális változó definíció – Konstans definíció – Fv. Hívás – Objektum létrehozás – Változó vagy tulajdonság vagy adattag értékadása. Szervezhetjük ciklusba Definiálhatunk elágazást

24 Ciklusok do { … } while (hátul tesztel, fut amíg igaz) for (int i = 1; i <= 5; i++) inicializál feltétel, fut amíg igaz léptető rész foreach tömbök kollekciók végigjárása, minden elem értékét felveszi a ciklusváltozó int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 }; foreach (int i in fibarray) { System.Console.WriteLine(i); } a példában szereplő „i” konstans! In foreach „()”-ben használjuk foglalt szó while (elöl tesztel)

25 Feltételes utasítások I If – feltétele csak logikai kifejezés lehet, else ág elhagyható Nincs then kulcsszó if (a == 5) System.Console.WriteLine("A is 5"); else System.Console.WriteLine("A is not 5"); Használható helyette a ? : operátor: int i = (myBoolean) ? 1 : 0 ;

26 Feltételes utasítás II Pl.: int caseSwitch = 1; switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default");break; } Nem lehet 2 ága melynek ugyanaz az értéke Kell a break, mert a feltétel csak kijelőli a beugrás helyét, és végigfutna!

27 I / O I. Kiírás: – Console.Write() – Kiírja a kimenetre – Console.WriteLine() – kiír a kimenetre, de egy újsort is ír a végére Beolvasás: – Console.ReadLine() – Beolvas egy sort Használat: – Console.WriteLine(”mit írjon ki {0} ”, parameter1, parameter2, … ); A szöveget írja ki. A paramétereket a {paraméter sorszáma} –val illeszti be (0 kezdőindexű) paramétereket használja fel, bármennyi lehet. int i = 10; int j = 20; Console.WriteLine("{0} plus {1} equals {2}", i, j, i + j);

28 Formátum sztringek StringDescription CLocal currency format. DDecimal format. Converts an integer to base 10, and pads with leading zeros if a precision specifier is given. EScientific (exponential) format. The precision specifier sets the number of decimal places (6 by default). The case of the format string (e or E) determines the case of the exponential symbol. FFixed-point format; the precision specifier controls the number of decimal places. Zero is acceptable. GGeneral format. Uses E or F formatting, depending on which is more compact. NNumber format. Formats the number with commas as thousands separators, for example 32, PPercent format. XHexadecimal format. The precision specifier can be used to pad with leading zeros.

29 I / O II. A következő példa a Windows beállításokat alapul véve írja ki pénzügyi formátumban: decimal i = m; decimal j = 73.7m; Console.WriteLine(" {0,9:C2}\n+{1,9:C2}\n \n {2,9:C2}", i, j, i + j); Ha a szélességet is megadjuk, akkor: {index,szélesség} formában kell.

30 Névtér (namespace) A saját elemeket névtérbe szervezhetjük, logikai kapcsolat alapján. Elszigeteli az elemeket. Így egy forrásfájlban akár több azonos nevű osztály lehet Pl.: Math névtér Szintaktika: namespace név{ elemek definíciói} A névterek egymásba ágyazhatóak. Ha 1 névteret gyakran használunk, és nem szeretnénk minden alkalommal kiírni, használjuk a using utasítást a fájl elején!

31 Megjegyzések A fordító meg se kapja ezeket a sorokat /* Több soros */ i = 23; // egy soros a sor végéig tart De bizonyos megjegyzésekből dokumentáció generáltatható

32 Dokumentációs kommentek I TagDescription Marks up text within a line as code, for example: int i = 10; Marks multiple lines as code. Marks up a code example. Documents an exception class. (Syntax is verified by the compiler.) Includes comments from another documentation file. (Syntax is verified by the compiler.) Inserts a list into the documentation. Marks up a method parameter. (Syntax is verified by the compiler.) Indicates that a word is a method parameter. (Syntax is verified by the compiler.) Documents access to a member. (Syntax is verified by the compiler.) Adds a description for a member.

33 Dokumentációs kommentek II TagDescription Documents the return value for a method. Provides a cross-reference to another parameter. (Syntax is verified by the compiler.) Provides a “see also” section in a description. (Syntax is verified by the compiler.) Provides a short summary of a type or member. Describes a property.

34 Dokumentáció készítés Példa: namespace Sajat.Basics { /// /// Sajat.Basics.Csak class. /// Provides a method to add two integers. /// public class Math { /// /// The Add method allows us to add two integers. /// /// Result of the addition (int) /// First number to add /// Second number to add public int Add(int x, int y) { return x + y; } } Készítés a ”csc /doc:doksi.xml Csak.cs” paranccsal.


Letölteni ppt "C# Alapok Krizsán Zoltán. Szabályok I Kis és NAGY betű érzékeny Szigorúan osztályok halmaza, azaz a kódok csak osztályon belül lehetnek. Az osztályok."

Hasonló előadás


Google Hirdetések