c using statement c virtual method tutorial with examples
Tento podrobný výukový program vysvetľuje všetko o jazyku C # pomocou príkazu a virtuálnej metódy. Dozviete sa tiež rozdiel medzi abstraktnými a virtuálnymi metódami:
Blok Používanie pomáha hlavne pri správe zdrojov, umožňuje systému spravovať svoje zdroje zadaním rozsahu objektu a jeho požiadavky na zdroje.
.NET Framework ponúka rôzne spôsoby správy zdrojov pre objekty pomocou zberača odpadu. To znamená, že nemusíte explicitne alokovať a odstraňovať pamäťové objekty. Čistenie ľubovoľného nespravovaného objektu sa uskutoční pomocou destruktora.
Na uľahčenie dosiahnutia tohto cieľa programátorom poskytuje vyhlásenie C # using podmienku zničenia objektu.
=> Vyskúšajte tu bezplatného výcvikového sprievodcu C # .
Na dosiahnutie automatického zničenia objektu ponúka C # dispose metódu, ktorú je možné zavolať, keď už objekt nie je potrebný. Príkaz using v C # definuje podmienenú hranicu pre existenciu objektu. Keď sekvencia vykonania opustí hranicu použitia, rámec .Net bude vedieť, že je čas tento objekt zničiť.
Čo sa dozviete:
C # Použitie vyhlásenia
Implementujte IDisposable rozhranie na používanie
Príkaz C # Using umožňuje programátorom implementovať niekoľko prostriedkov do jedného príkazu. Všetky objekty definované vo vnútri bloku s použitím kódu by mali implementovať rozhranie IDisposable, a to umožňuje rámci zavolať metódy dispose pre určené objekty vo vnútri príkazu, akonáhle je opustený.
Príklad
Používanie príkazov je možné kombinovať s typom, ktorý dokáže implementovať IDisposable ako StreamWriter, StreamReader atď.
Pozrime sa na jednoduchý program:
public class Program { public static void Main(string() args) { using (SysObj so = new SysObj()) { Console.WriteLine('Inside using statement'); } Console.WriteLine('Outside of the using statement block'); } } class SysObj : IDisposable { public void Dispose() { Console.WriteLine('Dispose method'); } }
Výkon
Výstup vyššie uvedeného programu:
Vo vnútri vyhlásenie o použití
Zlikvidujte metódu
Mimo bloku príkazov using
Vysvetlenie
Vo vyššie uvedenom príklade, keď je program spustený, je najskôr v hromade pamäte alokovaná inštancia „SysObj“. Potom sa blok using spustí a vytlačí výstup, ktorý sme definovali vo vnútri konzoly. Ďalej, keď sa blok Používanie príkazov dostane, prevedenie sa okamžite prevedie na metódu dispose.
Potom kód opustí blok príkazov a vytlačí vonkajší príkaz do konzoly.
Virtuálna metóda C #
Čo je to virtuálna metóda?
Virtuálna metóda je metóda triedy, ktorá ponúka programátorovi funkciu na prepísanie metódy v odvodenej triede, ktorá má rovnaký podpis. Virtuálne metódy sa používajú hlavne na vykonávanie polymorfizmu v prostredí OOP.
Virtuálna metóda môže mať implementáciu v odvodených aj základných triedach. Používa sa hlavne vtedy, keď používateľ potrebuje mať v odvodenej triede viac funkcií.
Virtuálna metóda sa najskôr vytvorí v základnej triede a potom sa prepíše v odvodenej triede. Virtuálnu metódu je možné vytvoriť v základnej triede pomocou kľúčového slova „virtual“ a rovnakú metódu je možné prepísať v odvodenej triede pomocou kľúčového slova „override“.
Virtuálne metódy: Niekoľko bodov na zapamätanie
- Virtuálna metóda v odvodenej triede má kľúčové slovo virtual a metóda v odvodenej triede by mala mať kľúčové slovo override.
- Ak je metóda deklarovaná ako virtuálna metóda v základnej triede, odvodená trieda nemusí vždy túto metódu prepísať, tzn. Je voliteľná, aby prepísala virtuálnu metódu v odvodenej triede.
- Ak má metóda rovnakú definíciu v základnej aj odvodenej triede, nie je potrebné ju prepísať. Prepísanie je potrebné, iba ak majú obidve odlišné definície.
- Prepísaná metóda nám umožňuje použiť pre jednu metódu viac ako jeden formulár, a preto ukazuje aj polymorfizmus.
- Všetky metódy sú predvolene nevirtuálne.
- Virtuálny modifikátor nemožno použiť spolu s modifikátormi Private, Static alebo Abstract.
Aké je použitie virtuálnych kľúčových slov v C #?
Virtuálne kľúčové slovo v C # sa používa na prepísanie člena základnej triedy v jeho odvodenej triede na základe požiadavky.
Virtuálne kľúčové slovo sa používa na zadanie virtuálnej metódy v základnej triede a metóde s rovnakým podpisom, ktorý je potrebné prepísať v odvodenej triede, predchádza kľúčové slovo override.
Rozdiel medzi abstraktnou metódou a virtuálnou metódou
Virtuálne metódy obsahujú implementáciu a umožňujú odvodenej triede prepísať ju, zatiaľ čo abstraktná metóda neponúka žiadnu implementáciu a núti programátorov písať prepísané metódy v odvodenej triede.
Jednoduchými slovami teda abstraktné metódy nemajú v sebe žiadny kód, zatiaľ čo virtuálna metóda má svoju vlastnú implementáciu.
Rozdiel medzi virtuálnym a prepísaním v C #
Za virtuálnym kľúčovým slovom zvyčajne nasleduje podpis metódy, vlastnosti atď. A umožňuje jeho prepísanie v odvodenej triede. Kľúčové slovo override sa používa v odvodenej triede s rovnakým podpisom metódy / vlastnosti ako v základnej triede, aby sa dosiahlo prepísanie v odvodenej triede.
Je povinné prepísať virtuálnu metódu v C #?
Kompilátor nikdy nebude nútiť programátorov, aby prepísali virtuálnu metódu. Odvodená trieda nie vždy vyžaduje prepísanie virtuálnej metódy.
Príklad
Pozrime sa na príklad, aby sme jasnejšie porozumeli virtuálnym metódam.
V tomto príklade budeme v základnej triede používať dve rôzne metódy, prvá je nevirtuálna metóda a druhá je virtuálna metóda s virtuálnym kľúčovým slovom. Obe tieto metódy budú v odvodenej triede prepísané.
Pozrime sa na:
Program
using System; public class Program { public static void Main(string() args) { calculate calc = new calculate (); numbers nmbr = calc; calc.addition(); nmbr.addition(); calc.subtraction(); nmbr.subtraction(); } } public class numbers { public void addition(){ Console.WriteLine('This is addition method'); } public virtual void subtraction(){ Console.WriteLine('This is subtraction method'); } } public class calculate : numbers { public void addition(){ Console.WriteLine('This is addition method in the derived class'); } public override void subtraction(){ Console.WriteLine('This is subtraction method override in derived class'); } }
Výkon
Výstupom vyššie uvedeného programu je:
Toto je metóda sčítania v odvodenej triede
Toto je metóda pridania
Toto je prepísanie metódy odčítania v odvodenej triede
Toto je prepísanie metódy odčítania v odvodenej triede
Vysvetlenie
Vo vyššie uvedenom príklade máme dve triedy, tj. Počet a Výpočet. Číslo základnej triedy Number má dve metódy, t. J. Sčítanie a odčítanie, kde sčítanie je nevirtuálna metóda a odčítanie je virtuálna metóda. Preto keď vykonáme tento program, je v odvodenej triede Calculate prepísaná virtuálna metóda „add“ základnej triedy.
V inej triede „Program“ vytvoríme vstupný bod na vytvorenie inštancie odvodenej triedy Calculate a potom rovnakú inštanciu priradíme objektu inštancie základnej triedy.
Keď voláme virtuálne a nevirtuálne metódy pomocou inštancií triedy, potom vidíme, že virtuálna metóda bola prepísaná použitím obidvoch inštancií, zatiaľ čo nevirtuálna metóda bola prepísaná iba pri volaní odvodenej triedy.
Záver
Príkaz using v C # sa používa hlavne na správu zdrojov. Príkaz using definuje podmienenú hranicu pre existenciu objektu.
Keď sa vykonanie presunie z bloku príkazov, povie to rámcu, aby zničil akýkoľvek objekt, ktorý bol vytvorený vo vnútri bloku príkazov. Kód definovaný vo vnútri príkazu by mal tiež implementovať IDisposable rozhranie, ktoré umožní rámci .Net volať metódu dispose pre definované objekty.
Virtuálna metóda umožňuje používateľovi prepísať metódu v odvodenej triede, ktorá má rovnaký podpis ako metóda v základnej triede. Virtuálnu metódu je možné použiť na dosiahnutie polymorfizmu v objektovo orientovaných programovacích jazykoch.
Virtuálna metóda sa používa hlavne vtedy, keď sa v odvodenej triede vyžaduje ďalšia funkčnosť. Virtuálne metódy nemôžu byť súkromné, statické ani abstraktné. Je definované pomocou virtuálneho kľúčového slova v základnej triede a prepísania kľúčového slova v odvodenej triede.
=> Tu si pozrite hĺbkové výukové kurzy C #
Odporúčané čítanie
- Výukový program pre Python DateTime s príkladmi
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi
- Metóda MongoDB Sort () s príkladmi
- Dokument dopytu MongoDB pomocou metódy Find () (príklady)
- Používanie kurzora v MongoDB s príkladmi
- C # triedy a objekty: Podrobný návod s príkladmi
- Výukový program pre skriptovanie Unixu s príkladmi
- Výukový program na spracovanie výnimiek C # s príkladmi kódu