Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
C# přehled vlastností
2
Hello World using System; class Hello { static void Main() { Console.WriteLine("Hello world"); }
3
Namespaces Deklarace typů Členy Organizace C# Struktura programu
Obsahuje typy a další namespaces Deklarace typů Třídy, struktury, rozhraní, enumerace, a delegáty Členy Konstanty, datové členy (složky), metody, vlastnosti, indexery, události, atributy, operátory, konstruktory, destruktory Organizace Žádné hlavičkové soubory Assemblies
4
Hodnotové typy Referenční typy Typy Obsahuje přímo data
Nemůže být null Referenční typy Obsahuje odkazy na objekty Může být null int i = 123; string s = "Hello world"; i 123 s "Hello world"
5
Type System Hodnotové typy Referenční typy Primitivní int i;
Enumerace enum State { Off, On } Struktury struct Point { int x, y; } Referenční typy Třídy class Foo: Bar, IFoo {...} Interfaces interface IFoo: IBar {...} Pole string[] a = new string[10]; Delegáty delegate void Empty();
6
Vícenásobná dědičnost pomocí implementace rozhraní Třída - členy
Třídy Jednoduchá dědičnost Vícenásobná dědičnost pomocí implementace rozhraní Třída - členy Konstanty, složky (pole), metody, vlastnosti, indexery, události, operátory, konstruktory, destruktory Statické a instanční členy Vnořené, zapečetěné, abstraktní třídy Přístupnost pomocí modifikátorů public, protected, internal, protected internal, private
7
Programové bloky obsahující sekvenci příkazů Redukuje duplikátní kód
Třída - Metody Programové bloky obsahující sekvenci příkazů Redukuje duplikátní kód Dekompozice problému Základní charakteristika Úroveň přístupu Návratová hodnota Jméno Parametry Tělo (sekvence příkazů)
8
Parametry metod Modifikátor
Žádný – předávání hodnotou – metoda obdrží kopii původních dat ref – předávání odkazem out – výstupní parametry params – proměnlivý počet parametrů téhož typu
9
Vlastnosti jsou “chytré složky”
public class Button: Control { private string caption; public string Caption { get { return caption; } set { caption = value; Repaint(); Button b = new Button(); b.Caption = "OK"; String s = b.Caption;
10
Indexery jsou “malé pole”
Dají se přetěžovat public class ListBox: Control { private string[] items; public string this[int index] { get { return items[index]; } set { items[index] = value; Repaint(); ListBox listBox = new ListBox(); listBox[0] = "hello"; Console.WriteLine(listBox[0]);
11
Konstruktory a destruktory
Konstruktor je metoda, která se volá když dojde k vytvoření instance třídy (struktury) Implicitní (bezparametrický) konstruktor Parametrické konstruktory Destruktor se volá když instance končí své trvání Destruktory jsou volány automaticky Pouze jeden destruktor pro danou třídu Destruktor volá metodu Finalize
12
Odlišnosti proti třídám
Struktury Odlišnosti proti třídám Hodnotový typ, zásobník místo haldy Žádné reference Žádná dědičnost Ideální pro „odlehčené“ objekty Body, obdélníky, barvy Výhody Nejsou alokovány na haldě Efektivnější využití paměti
13
Třídy a struktury - porovnání
class CPoint { int x, y; ... } struct SPoint { int x, y; ... } CPoint cp = new CPoint(10, 20); SPoint sp = new SPoint(10, 20); 10 sp 20 cp CPoint 10 20
14
Rozhraní (Interfaces)
Podporují vícenásobnou dědičnost Může obsahovat metody, vlastnosti, indexery, události Public interface IUIControl { void Paint(); } public class Button : IUIControl public void Paint { /* vybarvi tlacitko */ }
15
Mohou obsahovat hodnoty jiného typu
Enumerace (Výčty) Mapují se na Systém.Int32 Mohou obsahovat hodnoty jiného typu Byte, short, int, long enum Color: byte { Red = 1, Green = 2, Blue = 4, Black = 0 }
16
Delegáty Objektově orientované ukazatele na funkce Typově bezpečný objekt, který ukazuje na jiné metody Základ pro události
17
Příkazy a výrazy Cykly Příkazy - větvení Ostatní
while, do while, for, foreach Příkazy - větvení if – else, switch - default Ostatní break, continue, return, throw
18
Referenční typ odvozený od typu Systém.Array
Pole Referenční typ odvozený od typu Systém.Array Průchod polem příkazy - foreach, for, … Pole Jednorozměrné pravoúhlé multidimenzionální pole nepravidelné multidimenzionální pole
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.