c using statement c virtual method tutorial with examples
Tento podrobný výukový program vysvětluje vše o C # pomocí příkazu a virtuální metody. Dozvíte se také rozdíl mezi abstraktními a virtuálními metodami:
Blok Používání pomáhá hlavně při správě zdrojů, umožňuje systému spravovat své zdroje zadáním rozsahu objektu a jeho požadavku na zdroje.
NET Framework nabízí různé způsoby správy prostředků pro objekty pomocí garbage collector. To znamená, že nemusíte explicitně přidělovat a odebírat paměťové objekty. Operace čištění libovolného nespravovaného objektu bude zpracována pomocí destruktoru.
Abychom programátorům pomohli toho dosáhnout, poskytuje příkaz C # using podmínku pro zničení objektu.
=> Podívejte se na bezplatného průvodce C # pro výcvik zde .
co mohu dělat s c ++
K dosažení automatického zničení objektu nabízí C # dispose metodu, kterou lze volat, když objekt již není vyžadován. Příkaz using v C # definuje podmíněnou hranici pro existenci objektu. Jakmile sekvence provádění opustí hranici použití, bude rozhraní .Net vědět, že je čas tento objekt zničit.
Co se naučíte:
C # pomocí příkazu
Implementujte IDisposable rozhraní pro použití
Příkaz C # Using umožňuje programátorům implementovat několik prostředků v jednom příkazu. Všechny objekty definované uvnitř bloku s použitím kódu by měly implementovat IDisposable rozhraní, a to umožňuje rozhraní volat metody vyřazení pro zadané objekty uvnitř příkazu, jakmile je ukončen.
Příklad
Pomocí příkazů lze kombinovat s typem, který může implementovat IDisposable jako StreamWriter, StreamReader atd.
Podívejme se 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ýstup
Výstup výše uvedeného programu:
Uvnitř pomocí příkazu
Zlikvidujte metodu
Mimo blok using using
Vysvětlení
Ve výše uvedeném příkladu, když je program spuštěn, je nejprve v haldě paměti přidělena instance „SysObj“. Potom se blok using spustí a vytiskne výstup, který jsme definovali uvnitř konzoly. Poté, co se blok použití příkazu dostane, se provedení okamžitě přenese do metody dispose.
Poté kód opustí blok příkazů a vytiskne vnější příkaz do konzoly.
Virtuální metoda C #
Co je to virtuální metoda?
Virtuální metoda je metoda třídy, která programátorovi nabízí funkce k přepsání metody v odvozené třídě, která má stejný podpis. Virtuální metody se používají hlavně k provádění polymorfismu v prostředí OOP.
Virtuální metoda může mít implementaci v odvozených i základních třídách. Používá se hlavně, když uživatel potřebuje mít v odvozené třídě více funkcí.
Virtuální metoda je nejprve vytvořena v základní třídě a poté je přepsána v odvozené třídě. Virtuální metodu lze vytvořit v základní třídě pomocí klíčového slova „virtual“ a stejnou metodu lze přepsat v odvozené třídě pomocí klíčového slova „override“.
Virtuální metody: Několik bodů k zapamatování
- Virtuální metoda v odvozené třídě má virtuální klíčové slovo a metoda v odvozené třídě by měla mít klíčové slovo přepsání.
- Pokud je metoda v základní třídě deklarována jako virtuální metoda, odvozená třída nemusí vždy tuto metodu přepsat, tj. Její volitelnou možnost přepsat virtuální metodu v odvozené třídě.
- Pokud má metoda stejnou definici v základní i odvozené třídě, není nutné ji přepsat. Přepsání je vyžadováno, pouze pokud mají obě různé definice.
- Přepisující metoda nám umožňuje použít pro stejnou metodu více než jeden formulář, a proto také ukazuje polymorfismus.
- Všechny metody jsou ve výchozím nastavení nevirtuální.
- Virtuální modifikátor nelze použít společně s modifikátory Private, Static nebo Abstract.
Jaké je použití virtuálních klíčových slov v C #?
Virtuální klíčové slovo v C # se používá k přepsání člena základní třídy v jeho odvozené třídě na základě požadavku.
jak odstranit index z pole java
Virtuální klíčové slovo se používá k určení virtuální metody v základní třídě a metodě se stejným podpisem, který je třeba v odvozené třídě přepsat, předchází klíčové slovo přepsání.
Rozdíl mezi abstraktní metodou a virtuální metodou
Virtuální metody obsahují implementaci a umožňují odvozené třídě ji přepsat, zatímco abstraktní metoda nenabízí žádnou implementaci a nutí programátory psát přepsané metody v odvozené třídě.
Jednoduchými slovy tedy abstraktní metody nemají v sobě žádný kód, zatímco virtuální metoda má vlastní implementaci.
Rozdíl mezi virtuální a přepsat v C #
Za virtuálním klíčovým slovem obvykle následuje podpis metody, vlastnosti atd. A umožňuje jeho přepsání v odvozené třídě. Klíčové slovo přepsání se používá v odvozené třídě se stejným podpisem metody / vlastnosti jako v základní třídě k dosažení přepsání v odvozené třídě.
Je povinné přepsat virtuální metodu v C #?
Kompilátor nikdy nevynucuje programátory, aby přepsali virtuální metodu. Odvozená třída není vždy povinna přepsat virtuální metodu.
Příklad
Podívejme se na příklad, abychom jasněji porozuměli virtuálním metodám.
V tomto příkladu budeme v základní třídě používat dvě různé metody, první je nevirtuální metoda a druhá je virtuální metoda s virtuálním klíčovým slovem. Obě tyto metody budou v odvozené třídě přepsány.
Podívejme se:
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ýstup
Výstupem výše uvedeného programu je:
Toto je metoda přidání v odvozené třídě
Toto je metoda přidání
Toto je přepsání metody odčítání v odvozené třídě
Toto je přepsání metody odčítání v odvozené třídě
Vysvětlení
Ve výše uvedeném příkladu máme dvě třídy, tj. Number a Calculate. Základní třída Number má dvě metody, tj. Sčítání a odčítání, kde sčítání je nevirtuální metoda a odčítání je virtuální metoda. Proto při spuštění tohoto programu je v odvozené třídě Calculate přepsána virtuální metoda „přidání“ základní třídy.
V jiné třídě „Program“ vytvoříme vstupní bod pro vytvoření instance odvozené třídy Vypočítat a poté přiřadíme stejnou instanci objektu instance základní třídy.
Když voláme virtuální a nevirtuální metody pomocí instancí třídy, pak vidíme, že virtuální metoda byla přepsána pomocí obou instancí, zatímco nevirtuální metoda byla přepsána pouze při volání odvozené třídy.
webové služby testující otázky a odpovědi na rozhovory
Závěr
Příkaz using v C # se používá hlavně pro správu prostředků. Příkaz using definuje podmíněné hranice pro existenci objektu.
Jakmile se provedení přesune z bloku příkazů, řekne rozhraní, aby zničilo jakýkoli objekt, který byl vytvořen uvnitř bloku příkazů. Kód definovaný uvnitř příkazu by měl také implementovat IDisposable rozhraní, které umožní .Net framework volat metodu dispose pro definované objekty.
Virtuální metoda umožňuje uživateli přepsat metodu v odvozené třídě, která má stejný podpis jako metoda v základní třídě. Virtuální metodu lze použít k dosažení polymorfismu v objektově orientovaných programovacích jazycích.
Virtuální metoda se používá hlavně v případě, že je v odvozené třídě vyžadována další funkce. Virtuální metody nemohou být soukromé, statické ani abstraktní. Je definována pomocí virtuálního klíčového slova v základní třídě a přepsání klíčového slova v odvozené třídě.
=> Dávejte pozor na hloubkové C # výukové návody zde
Doporučené čtení
- Výukový program Python DateTime s příklady
- Výukový program pro vyhledání prvku selen pomocí textu s příklady
- Metoda MongoDB Sort () s příklady
- Dokument dotazu MongoDB pomocí metody Find () (příklady)
- Použití kurzoru v MongoDB s příklady
- C # třídy a objekty: Podrobný výukový program s příklady
- Výukový program pro skriptování prostředí Unix s příklady
- Výukový program pro zpracování výjimek C # s příklady kódu