7. lekce - Ukazatelé

Ukazatelé jsou prostředek, díky kterému si můžete aplikaci zrychlit. Pokud vytváříte jednoduché aplikace, ukazatelé vám moc nepomohou. Co je to ukazatel. Jak vám asi už název napovídá, jedná se spíše o adresu, která odkazuje na proměnnou, než plnohodnotnou proměnnou. Ukazatelé mohou ukládat adresu stejných typů. Deklarace je podobná jako u normální proměnné.

typ_proměnné *název_proměnné

nebo

typ_proměnné* název_proměnné

Zde je důležité si povšimnout hvězdičky, která vytváří ukazatel daného typu s určitým názvem. Jak vidíte, je "celkem jedno" kam hvězdičku umístíte, jestli k typu nebo k názvu.

Dalším důležitým znakem je &. Díky němu uděláte ukazatel, který na něco doopravdy ukazuje

int prom;
int *uka;
uka = &prom;       // -> nyní ukazatel uka odkazuje na proměnnou prom
*uka = 20;            // -> výsledkem je, že proměnná prom bude obsahovat hodnotu 20

Dále je možné také udělat ukazatel na strukturu. Nejdříve si však řekněme, co je to struktura

Jako příklad pro strukturu lze použít DateTime. Struktura je něco jako náš vlastní prvek

Struct pokus
{
   public int x;
   private double y;
   internal string str; 
}

pokus pok;
pok.x = 100;
pok.y = 1254789963;
pok.str = "Ahoj, zdraví vás GoID";

Bylo to velmi rychlé nahlédnutí na strukturu, ale pro pochopení to doufám zatím stačí. A teď jak pracovat s ukazateli. Použiji strukturu pokus, kterou jsem udělal výše.

unsafe
{
   pokus pok;

   pokus* pokusnej = &pok;
   (*pokusnej).x = 100;
   pokusnej->x = 100;
}

Zde je důležité si všimnout části unsafe, která povoluje nezabezpečený kód. Při použití unsafe nefunguje správa paměti, takže to co v systému vytvoříte, změníte nebo smažete, musíte také vrátit zpět (jedná se o paměti -> garbage collection) . Unsafe code je v původním nastavení zakázán. 

Povolení unsafe code:
1) Klikněte na záložku Projekt (Project)
2) dále na tu nejspodnější možnost -> Vlastnosti název_projektu (název_projektu properties)
3) Klikněte na položku Sestavení (Build)
4) Zaškrtněte možnost Povolit nebezpečný kód (Allow unsafe code)

To je zatím vše. Tato lekce byla spíš určená jen k seznámení se s ukazateli. Já osobně je nepoužívám a nějak mi ani nechybí. Příště si vytvoříme program, který bude procházet obrázky, pohrajeme si s PictureBox, oživíme si přiřazování funkcí, tlačítka a přiučíme se něco o rozložení prvků v aplikaci. To vše nás čeká v lekci 8. Samozřejmě to nebude v jedné lekci, ale v několik podlekcích, kde vás provedu tvorbou aplikace.

<-- Předchozí lekce - 6. lekce - Operátory Další lekce - 8. lekce - Picview -->

Pokud máte otázky, pište na naši adresu, Facebook nebo na Twitter