V programovaní C# sú vlastnosti veľké téma, pretože ponúkajú efektívny spôsob, ako spravovať prístup k vlastnostiam objektu. V nasledujúcich častiach ti ukážem, ako používať Get- a Set-vlastnosti na kontrolu prístupu k dátam v rámci tried a tým zabezpečiť väčšiu bezpečnosť.
Najdôležitejšie poznatky
- Vlastnosti umožňujú kontrolovaný prístup k členským premenným triedy.
- Get-vlastnosti slúžia na čítanie, Set-vlastnosti na zapisovanie hodnôt.
- Prístup k vlastnostiam by sa nemal vykonávať priamo cez verejné členské premenné, ale cez vlastnosti, aby sa zachoval princíp zapuzdrenia.
Podrobný návod na používanie vlastností
1. Základné chápanie vlastností
Vlastnosti v C# sa líšia od klasických členských premenných, pretože ponúkajú kontrolovanú formu prístupu. Máš možnosť definovať getter (get) a setter (set). Tieto zabezpečujú, že je možné buď iba čítať, alebo aj zapisovať. To vedie k lepšiemu zapuzdreniu dát.

2. Vytvorenie nového príkladu
Vytvorme príklad s autom, ktoré má vlastnosti ako evidenčné číslo, značka, veľkosť nádrže a množstvo paliva. Tieto vlastnosti budú definované pomocou vlastností v našej triede. Najprv musíš určiť vlastnosti v triede.
3. Vytvorenie konštruktora
Vytvor konštruktor, aby si nastavil vlastnosti nového auta pri vytváraní objektu. V tomto prípade by mal konštruktor prijímať parametre pre evidenčné číslo, značku, veľkosť nádrže a množstvo paliva. Pri tom použiješ kľúčové slovo this na odkazy na inštančné premenné.
4. Vyvinutie metódy tankovania
Teraz vytvoríme metódu, ktorá umožňuje tankovanie auta. Táto metóda musí zabezpečiť, že súčet aktuálneho množstva paliva a natankovaných litrov nepresiahne veľkosť nádrže. Vytvor chybovú správu, ktorá informuje používateľa, keď je nádrž príliš malá.
5. Vytvorenie objektu auta
Teraz vytvor v hlavnej triede nový objekt auta. Napríklad môžeš použiť model Opel a nastaviť rôzne parametre, ktoré sme predtým definovali v našom konštruktore.
6. Vyvolanie a kontrola tankovania
Po vytvorení objektu auta otestuj metódu tankovania. Nech používateľ zadá počet litrov a skontroluj, či všetko funguje správne. V konzole by si mal vidieť, koľko litrov je teraz v nádrži.
7. Implementácia Get-vlastností
Teraz chceš vytvoriť Get-vlastnosť pre množstvo paliva. Táto vlastnosť by mala vrátiť aktuálny stav množstva paliva. Ujisti sa, že názov píšeš v PascalCase a správne odkazuješ na premennú.
8. Pridanie Set-vlastností
Rozšír svoju triedu o Set-vlastnosti, aby mohol používateľ zmeniť množstvo paliva. Ujisti sa, že aj tu prebieha validácia, aby sa zabezpečilo, že hodnota nepresiahne veľkosť nádrže.
9. Testovanie Set-vlastnosti
Vráť sa do hlavnej triedy a vykonaj test, nastavením množstva paliva. Skontroluj novú hodnotu v výstupe.
10. Úprava evidenčného čísla a iných vlastností
Vytvoraj tiež Get- a Set-vlastnosti pre iné vlastnosti ako evidenčné číslo. Tu by bola jednoduchšia implementácia postačujúca, pretože si nevyžaduje veľa logiky.
11. Preverenie a kontrola kódu
Prejdi cez celý kód a uisti sa, že všetky funkcie fungujú, ako sa očakáva. Otestuj výstupy pre Get- aj Set-vlastnosti, aby si si bol istý, že hodnoty sú správne nastavené a vrátené.
Zhrnutie - Programovanie v C#: Vlastnosti a ich použitie
Vlastnosti môžu byť v C# veľmi užitočné na zabezpečenie integrity údajov v rámci tried. Cieleným používaním Get- a Set-vlastností si udržíš kontrolu nad prístupom a modifikáciou členských premenných. Príklad s autom ukazuje, ako tieto koncepty prakticky aplikovať.
Často kladené otázky
Jak môžem definovať vlastnosť v C#?Vlastnosť sa definuje pomocou kľúčového slova „public“ nasledovaného typom návratu a obsahuje aspoň jeden get- alebo set-blok.
Prečo sú vlastnosti lepšie ako verejné premenné?Vlastnosti ponúkajú lepšie zapuzdrenie a umožňujú validácie pri getter a setter, čo udržiava integritu údajov.
Môžem kombinovať viacero vlastností v jednej vlastnosti?Nie, vlastnosť zvyčajne reprezentuje iba jednu vlastnosť. Pre viacero hodnôt by si mal používať metódy.
Jak testujem funkčnosť svojich vlastností?Vytvor testovacie objekty a vyvolaj vlastnosti vo svojej hlavnej triede, aby si overil ich hodnoty.