c using statement c virtual method tutorial with examples
Denna djupgående handledning förklarar allt om C # med användning av uttalande och virtuell metod. Du lär dig också skillnaden mellan abstrakta och virtuella metoder:
Användningsblocket hjälper främst till att hantera resurser, det gör att systemet kan hantera sina resurser genom att specificera objektets omfattning och dess resurskrav.
. Net Framework erbjuder olika sätt för resurshantering för objekt som använder en sopuppsamlare. Det betyder att du inte behöver tilldela och ta bort minnesobjekt uttryckligen. Rengöringsåtgärder för alla ohanterade föremål hanteras med hjälp av destruktorn.
För att hjälpa programmerare att uppnå detta tillhandahåller C # med uttalande ett villkor för förstörelsen av objektet.
=> Kolla in den kostnadsfria C # -träningsguiden här .
För att uppnå automatisk förstörelse av objektet erbjuder C # en kasseringsmetod som kan anropas när objektet inte längre behövs. Användningsuttrycket i C # definierar en villkorlig gräns för objektets existens. När körningssekvensen lämnar den använda gränsen vet .Net-ramverket att det är dags att förstöra det objektet.
Vad du kommer att lära dig:
C # Använda uttalande
Implementera ID-disponibelt gränssnitt för användning
C # Using-uttalandet tillåter programmerare att implementera flera resurser i ett uttalande. Alla objekt som definierats inuti det kodande blocket ska implementera IDisposable-gränssnittet, och detta gör det möjligt för ramverket att anropa kasseringsmetoderna för de angivna objekten i uttalandet när det har avslutats.
Exempel
Använda uttalanden kan kombineras med en typ som kan implementera IDisposable som StreamWriter, StreamReader, etc.
Låt oss titta på ett enkelt program:
spela wow gratis privat server
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'); } }
Produktion
Resultatet från ovanstående program:
Inuti med uttalande
Kassera metoden
Utanför det använda uttalande blocket
Förklaring
I exemplet ovan, när programmet körs, tilldelas först 'SysObj' -instansen i minneshögen. Sedan börjar användningsblocket att köras och skriver ut den utdata som vi definierade inuti konsolen. Därefter överförs körningen omedelbart till avyttringsmetoden när användning av uttalande blockeras.
Då går koden ut från satsblocket och skriver ut det yttre uttalandet till konsolen.
C # Virtuell metod
Vad är en virtuell metod?
En virtuell metod är en klassmetod som erbjuder funktionalitet till programmeraren för att åsidosätta en metod i den härledda klassen som har samma signatur. Virtuella metoder används främst för att utföra polymorfism i OOP-miljön.
En virtuell metod kan ha en implementering i både härledda och basklasser. Det används främst när en användare behöver ha mer funktionalitet i den härledda klassen.
En virtuell metod skapas först i en basklass och sedan åsidosätts den i den härledda klassen. En virtuell metod kan skapas i basklassen med hjälp av det 'virtuella' nyckelordet och samma metod kan åsidosättas i den härledda klassen med hjälp av 'åsidosätta' nyckelordet.
Virtuella metoder: Få poäng att komma ihåg
- Den virtuella metoden i den härledda klassen har det virtuella nyckelordet och metoden i härledd klass ska ha ett åsidosättande nyckelord.
- Om en metod deklareras som en virtuell metod i basklassen, krävs det inte alltid av den härledda klassen att åsidosätta den metoden, dvs. det är valfritt att åsidosätta en virtuell metod i den härledda klassen.
- Om en metod har samma definition i både bas- och härledd klass behöver du inte åsidosätta metoden. Åsidosättande krävs endast om båda har en annan definition.
- Den övergripande metoden tillåter oss att använda mer än en form för samma metod, därför visar den också polymorfism.
- Alla metoder är icke-virtuella som standard.
- En virtuell modifierare kan inte användas tillsammans med privata, statiska eller abstrakta modifierare.
Vad är användningen av virtuella sökord i C #?
Det virtuella nyckelordet i C # används för att åsidosätta basklassmedlemmen i dess härledda klass baserat på kravet.
skillnaden mellan c och c ++
Ett virtuellt nyckelord används för att specificera den virtuella metoden i basklassen och metoden med samma signatur som måste åsidosättas i den härledda klassen föregås av åsidosättande nyckelord.
Skillnaden mellan abstrakt metod och virtuell metod
Virtuella metoder innehåller implementering och tillåter den härledda klassen att åsidosätta den medan den abstrakta metoden inte erbjuder någon implementering och det tvingar programmerarna att skriva åsidosättningsmetoder i den härledda klassen.
Därför, med enkla ord, har de abstrakta metoderna ingen kod inuti medan den virtuella metoden har sin egen implementering.
Skillnaden mellan virtuell och åsidosättande i C #
Det virtuella nyckelordet följs vanligtvis av signaturen för metoden, egenskapen etc. och låter den åsidosättas i den härledda klassen. Nyckelordet åsidosättande används i den härledda klassen med samma metod / egenskapssignatur som i basklassen för att uppnå åsidosättande i den härledda klassen.
Är det obligatoriskt att åsidosätta virtuell metod i C #?
Kompilatorn tvingar aldrig programmerare att åsidosätta en virtuell metod. Det krävs inte alltid av den härledda klassen att åsidosätta den virtuella metoden.
Exempel
Låt oss titta på ett exempel för att förstå mer tydligt om de virtuella metoderna.
I det här exemplet kommer vi att använda två olika metoder i basklassen, den första är en icke-virtuell metod och den andra är en virtuell metod med det virtuella nyckelordet. Båda dessa metoder kommer att åsidosättas i den härledda klassen.
Låt oss ta en titt:
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'); } }
Produktion
Resultatet från ovanstående program är:
Detta är tilläggsmetod i den härledda klassen
Detta är tilläggsmetod
Detta är subtraktionsmetod åsidosättande i härledd klass
Detta är subtraktionsmetod åsidosättande i härledd klass
vad man ska öppna xml-filer med
Förklaring
I exemplet ovan har vi två klasser, dvs Antal och Beräkna. Basklassen Number har två metoder, dvs addition och subtraktion där addition är en icke-virtuell metod och subtraktion är en virtuell metod. Därför, när vi kör detta program, åsidosätts basklassens virtuella metod 'addition' i den härledda klassen Beräkna.
I en annan klass “Program” skapar vi en ingångspunkt för att skapa en instans av den härledda klassen Beräkna och sedan tilldelar vi samma instans till instansobjektet för basklassen.
När vi anropar de virtuella och icke-virtuella metoderna genom att använda klassinstanserna ser vi att den virtuella metoden åsidosattes genom att använda båda instanserna medan den icke-virtuella metoden endast åsidosattes när vi anropade den härledda klassen.
Slutsats
Användningsuttalandet i C # används huvudsakligen för resurshantering. Användningsuttrycket definierar en villkorlig gräns för ett objekts existens.
När körningen flyttar ut från uttalande blocket, berättar det ramverket att förstöra alla objekt som skapades inuti uttalande blocket. Kod definierad inuti uttalandet bör också implementera ett IDisposable-gränssnitt för att tillåta .Net-ramverket att anropa disponeringsmetoden för de definierade objekten.
En virtuell metod tillåter användaren att åsidosätta en metod i den härledda klassen som har samma signatur som metoden i basklassen. Den virtuella metoden kan användas för att uppnå polymorfism i objektorienterade programmeringsspråk.
En virtuell metod används främst när extra funktionalitet krävs i den härledda klassen. Virtuella metoder kan inte vara privata statiska eller abstrakta. Det definieras med hjälp av ett virtuellt nyckelord i basklassen och åsidosätter nyckelord i den härledda klassen.
=> Se upp de djupgående C # -träningsövningarna här
Rekommenderad läsning
- Python DateTime-handledning med exempel
- Selen Find Element by Text Tutorial med exempel
- MongoDB Sort () -metod med exempel
- MongoDB-frågedokument med Find () -metod (exempel)
- Användning av markören i MongoDB med exempel
- C # Klasser och objekt: En djupgående handledning med exempel
- Unix Shell Scripting Tutorial med exempel
- C # Exception Handling Tutorial med kodexempel