C# áttekintés.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Osztály leszármaztatás
Krizsán Zoltán iit 1.1.  Aszinkron történésről értesítés egy vagy több objektum számára.  Delegátumok segítségével valósítja meg a C#.  event típus,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective C ELTE IK Programozási paradigmák összehasonlítása II GY. Balog Szabolcs Dávid és Tóth Ádám.
Adatbányászati technikák (VISZM185)
Öröklődés 2..
JavaScript.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Mutatók, tömbök, függvények
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
Java programozási nyelv 5. rész – Osztályok III.
C# Alapok Krizsán Zoltán.
C# tagfüggvények.
C# osztályok Krizsán Zoltán 1.0.
C# osztályok Krizsán Zoltán 1.1.
C# tagfüggvények.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Az UML kiterjesztési lehetőségei
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
A PHP 5 újdonságai Az OOP terén. Miről lesz szó? Osztályok kezelése – Új direktívák – Konstruktor – Destruktor Interfészek Kivételkezelés.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Java programozási nyelv Metódusok
Bevezetés Amiről ma szó lesz… Miért D? Mert a fejlesztők úgy látták, hogy a C++-on van még mit javítani. Mert a programozók a nyelvnek általában elszigetelt.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Programozás III OOP ÖRÖKLŐDÉS.
A Visual Basic nyelvi elemei
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
Típuskonverzió a C++ nyelvben
Haladó Programozás Delegáltak, események OE-NIK HP 1.
Haladó Programozás Reflexió OE-NIK HP.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 4. gyakorlat.
Informatikai gyakorlatok 11. évfolyam
V 1.0 Programozás I. Osztályok, objektumok 1 ÓE-NIK-AII, 2014.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
V 1.01 Szoftverfejlesztés párhuzamos és elosztott környezetben Generikus típusok Delegáltak Anonim függvények Lambda kifejezések GUI készítése.
Script nyelvek előadás
C# kódolási konvenciók
a programegységek között
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Programozási Nyelvek II.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Web programozás és haladó fejlesztési technikák – C#
Web programozás és haladó fejlesztési technikák – C#
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Thread és Task.
Feladat Készítsünk programot, amely ciklikusan egy egyenest forgat 8 fokonként, mialatt 3 db vektort mozgat és forgat 5, 6 ill 7 fokonként, és kijelzi.
Függvénysablonok használata
Előadás másolata:

C# áttekintés

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

„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

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

Típusok C# áttekintés

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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