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# áttekintés.

Hasonló előadás


Az előadások a következő témára: "C# áttekintés."— Előadás másolata:

1 C# áttekintés

2 Bevezető Objektum-orientált nyelv Az újdonságok kerülnek bemutatásra
A hasonló dolgok csak említés szintjén Pl. namespace, class A lényeges újdonságok részletes Pl. property C# áttekintés

3 „Hasonlóságok” Namespace, using Class, struct, interface, enum
A C++-hoz képest van különbség köztük! „Többszörös öröklődés” nem támogatott class child : base { … } Metódusok, attribútumok, … Utasítások if-else, switch, for, while, … Automatikus memória felszabadítás C# áttekintés

4 Hasonló, de … Program belépési pontja Konzolra írás, konzolról olvasás
static void Main(string[] args) Konzolra írás, konzolról olvasás Console.Write(“x = {0}”, x); Console.WriteLine(…) x = Console.Read(); Formátum példa "FormatString {0} {1} \n {2} …", arg1, arg2, arg3 region C# áttekintés

5 Típusok C# áttekintés

6 Típusok System.Int32 – int System.Boolean – bool …
Ugyanazok, az int vagy a bool kulcsszó csak alias az System.Int32 vagy System.Boolean-ra C# áttekintés

7 Típusok Nullable Nullable<T> vagy T? jelelölés, ahol T típus
HasValue és GetValue metódusok C# ?? operátor C# áttekintés

8 const vs readonly Const – compile-time konstans
Readonly – runtime konstansok definiálásra is alkalmas Pl.: public static readonly uint timeStamp = (uint)DateTime.Now.Ticks; Ez a kódrészlet public const … esetén fordítási hibát eredményezne const esetén a member csak a deklaráció helyén kaphat értéket, ameddig a readonly esetében a konstruktorban is C# áttekintés

9 Láthatóságok private protected internal protected internal public
Csak a típuson belül protected Csak az típuson és a leszármazottjain belül internal Csak az adott assembly-n belül protected internal Protected VAGY Internal public Korlátlan hozzáférés C# áttekintés

10 Tulajdonságok (properties)
get, set kulcsszavak Getter és setter metódusok generálódnak a háttérben Auto-generated Csak olvasható, írható/olvasható tulajdonságok Alkalmazhatók a meglévő láthatóságok C# áttekintés

11 Paraméterek, paraméter átadás
Opcionális paraméterek A paraméterlista végén Sintaxis [Optional] attribútum VAGY Típus változónév = defaultÉrék Függvényhívás Az opcionális argumentumok elhagyhatók a hívásnál Named arguments paraméterNév: paraméterérték, … C# áttekintés

12 Paraméterek, paraméter átadás
Ref kulcsszó Out kulcszó Érték típusok referenciaként adhatóak át metódusoknak C# áttekintés

13 Kollekciók IEnumerable és IEnumerable<T>
Az összes kollekción, ami implementálja ezt az interfészt, végig lehet iterálni Gyakran használt ilyen kollekciók List<T> Egyszerű indexelhető lista Dictionary<TKey, TValue> Szótár „kulcs, érték” párok tárolására ObservableCollection<T> CollectionChanged esemény hívódik meg minden kollekción történt változásról (hozzáadás, törlés … ) C# áttekintés

14 Kollekciók Érdemes a generikus kollekciókat használni a típusbiztonság miatt Léteznek szálbiztos kollekciók is a System.Collections.Concurrent névtérben C# áttekintés

15 Initializers struct Cat { int Age; string Name; } Object initializer
Cat cat = new Cat { Age = 10, Name = "Fluffy" }; Collection initializer A kollekciónak implementálnia kell az IEnumerable interfészt List<Cat> cats = new List<Cat> { new Cat(){Name="S", Age=8 }, new Cat(){Name="A", Age=14 } }; C# áttekintés

16 A partial kulcsszó Lehetővé teszi egy osztály, struktúra, interfész vagy metódus több fájlba történő szétdarabolását. FONTOS: az összetartozó partial elemeknek egy assembly-ben kell lenniük. Tipikus felhasználás: UI és code-behind Lásd; a következő órán C# áttekintés

17 A sealed kulcssszó Osztályon alkalmazva megakadályozza, hogy az adott osztályból származtatni lehessen. sealed class SealedClass { public int x; public int y; } Megemlítés: metódusokra is használható C# áttekintés

18 Delegate „Erősen típusos függvény pointer”
A System.MulticastDelegate és System.Delegate osztályok leszármazottjai Csak a fordító származtathat belőlük Eseménykezelők is delegate-ek Függvény pointer C-ben double log2(double x) { return log(x) / log(2); } typedef double (*fgvtip)(double); fgvtip fgv = log2; double res = (*fgv)(17); C# áttekintés

19 Speciális delegate-ek
Action Meghatározott paraméterlistával ellátott és visszatérési érték nélküli Action a = „példányosítás”; Action<int> a = „ példányosítás”; Func Meghatározott visszatérési értékkel és paraméterlistával ellátott Func<int, bool> f = „ példányosítás”; C# áttekintés

20 Speciális delegate-ek
Predicate bool visszatérési értékkel és egyetlen paraméterrel Predicate<int> p = „példányosítás” EventHandler<TEventArgs> delegate void EventHandler<TEventArgs> C# áttekintés

21 Események Küldő/fogadó osztály, objektum
Feliratkozás (+=), leiratkozás (-=) operátorokkal 1 eseményre több feliratkozó lehet, illetve egy feliratkozó feliratkozhat több eseményre is Pl.: gombnyomás esemény a UI-on C# áttekintés

22 Események class A { public event EventHandler AnEvent; } A a = new A(); a.AnEvent += „eseménykezelő” a.AnEvent -= „eseménykezelő” C# áttekintés

23 Using utasítás IDisposable interfész
Determinisztikus erőforrás felszabadítás GC nem tudja felszabadítani a nem menedzselt erőforrásokat (DB kapcsolat, fájl handle) A using biztosítja, hogy az Dispose() metódus megfelelően legyen meghívva a példányosított objektumon még akkor is, ha kivétel dobódik egy try-finally generálódik a háttérben C# áttekintés

24 Bővítő metódusok (extension methods)
Típus kiterjesztése a típus módosítása nélkül Speciális statikus metódus egy statikus osztályban A metódus paraméter listája elején a this kulcsszó határozza meg a kiterjesztett típust Névtér explicit importálása szükséges (using direktíva) C# áttekintés

25 Lambda kifejezések Lokálisan létrehozható függvény
Argumentumként átadhatók vagy visszaadhatóak egy metódus által Előnye: hozzáfér a lokális objektumokhoz Tipikus felhasználás LINQ-ben Paraméter lista: (x, y …) Lambda operátor: => Függvénytörzs: { … } Pl.: (x, y) => { return x + y; } C# áttekintés

26 LINQ Language Integrated Queries Function vagy query szintaxis
Extension Method + Lambda kifejezés Function vagy query szintaxis LINQ interfész + LINQ provider-ek LINQ2SQL: SQL lekérdezések (Entity Fw) LINQ2Objects: objektumgráfok feldolgozása LINQ2XML: XML feldolgozása C# áttekintés

27 Feladat, házi feladat BookShopConsole
Implementáljuk a Customer funkcionalitásokat elejétől a végéig Entitás kiegészítése CustomerRepository implementálása Kontroller kiegészítése Demóadatok betöltése indításkor Kontroller felügyeli hogy egyedi felhasználó nevek legyenek Customer listázás, lekérés név alapján, hozzáadás C# áttekintés


Letölteni ppt "C# áttekintés."

Hasonló előadás


Google Hirdetések