c using statement c virtual method tutorial with examples
Denne grundige veiledningen forklarer alt om C # ved bruk av utsagn og virtuell metode. Du vil også lære forskjellen mellom abstrakte og virtuelle metoder:
Brukeblokken hjelper hovedsakelig med å administrere ressurser, den lar systemet administrere ressursene sine ved å spesifisere objektets omfang og ressurskravet.
.Net Framework tilbyr forskjellige måter for ressursadministrasjon for objekter som bruker en søppeloppsamler. Det betyr at du ikke trenger å eksplisitt tildele og fjerne minneobjekter. Rengjøringsoperasjoner for ikke-administrerte gjenstander håndteres ved hjelp av destruktoren.
For å hjelpe programmerere med å oppnå dette, gir C # ved bruk av uttalelse en betingelse for ødeleggelse av objektet.
=> Ta en titt på den gratis C # Training Guide her .
For å oppnå automatisk ødeleggelse av objektet, tilbyr C # en avhendingsmetode som kan kalles når objektet ikke lenger er nødvendig. Bruksuttalelsen i C # definerer en betinget grense for objektets eksistens. Når kjøringssekvensen forlater den brukte grensen, vil .Net-rammeverket vite at det er på tide å ødelegge det objektet.
Hva du vil lære:
C # Bruke uttalelse
Implementere ID-disponibelt grensesnitt for bruk
C # Using-uttalelsen lar programmererne implementere flere ressurser i en uttalelse. Alle objektene som er definert inne i kodeblokken, skal implementere IDisposable-grensesnittet, og dette gjør det mulig for rammeverket å ringe avhendingsmetodene for de spesifiserte objektene inne i uttalelsen når den er avsluttet.
Eksempel
Bruk av utsagn kan kombineres med en type som kan implementere IDisposable som StreamWriter, StreamReader, etc.
La oss ta en titt på et enkelt program:
youtube video nedlasting for pc gratis nedlasting
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'); } }
Produksjon
Resultatet av programmet ovenfor:
Inne ved bruk av uttalelse
Kast metoden
Utenfor den brukte setningsblokken
Forklaring
I eksemplet ovenfor, når programmet kjøres, tildeles først “SysObj” -forekomsten i hukommelsesbunken. Deretter begynner bruksblokken å kjøre og skriver ut utdata som vi definerte inne i konsollen. Deretter, når bruksuttalelsen blir over, overføres utførelsen umiddelbart til avhendingsmetoden.
Deretter kommer koden ut av setningsblokken og skriver ut utsagnet til konsollen.
C # Virtuell metode
Hva er en virtuell metode?
En virtuell metode er en klassemetode som tilbyr funksjonalitet til programmereren for å overstyre en metode i den avledede klassen som har samme signatur. Virtuelle metoder brukes hovedsakelig for å utføre polymorfisme i OOP-miljøet.
En virtuell metode kan ha en implementering i både avledede og baseklasser. Det brukes hovedsakelig når en bruker trenger å ha mer funksjonalitet i den avledede klassen.
En virtuell metode opprettes først i en baseklasse, og deretter overstyres den i den avledede klassen. En virtuell metode kan opprettes i baseklassen ved å bruke det 'virtuelle' nøkkelordet, og den samme metoden kan overstyres i den avledede klassen ved å bruke nøkkelordet 'Overstyr'.
Virtuelle metoder: Få poeng å huske
- Den virtuelle metoden i den avledede klassen har det virtuelle nøkkelordet, og metoden i avledet klasse skal ha et overordnet nøkkelord.
- Hvis en metode blir erklært som en virtuell metode i basisklassen, kreves det ikke alltid av den avledede klassen å overstyre den metoden, dvs. at den er valgfri å overstyre en virtuell metode i den avledede klassen.
- Hvis en metode har samme definisjon i både basis- og avledet klasse, er det ikke nødvendig å overstyre metoden. Overstyring er bare nødvendig hvis begge har en annen definisjon.
- Den overordnede metoden tillater oss å bruke mer enn en form for den samme metoden, derfor viser den også polymorfisme.
- Alle metodene er ikke-virtuelle som standard.
- En virtuell modifikator kan ikke brukes sammen med private, statiske eller abstrakte modifikatorer.
Hva er bruken av virtuelle søkeord i C #?
Det virtuelle nøkkelordet i C # brukes til å overstyre baseklassmedlemmet i sin avledede klasse basert på kravet.
programvarepakken som oftest brukes til å lage enkle diagrammer er
Et virtuelt nøkkelord brukes til å spesifisere den virtuelle metoden i basisklassen, og metoden med den samme signaturen som må overstyres i den avledede klassen, innledes med overstyringsnøkkelord.
Forskjellen mellom abstrakt metode og virtuell metode
Virtuelle metoder inneholder implementering og lar den avledede klassen overstyre den mens den abstrakte metoden ikke gir noen implementering, og det tvinger programmererne til å skrive overstyringsmetoder i den avledede klassen.
Derfor, med enkle ord, har de abstrakte metodene ingen kode i seg, mens den virtuelle metoden har sin egen implementering.
Forskjellen mellom virtuell og overstyring i C #
Det virtuelle nøkkelordet blir vanligvis fulgt av signaturen til metoden, egenskapen osv., Og lar den overstyres i den avledede klassen. Overstyringsnøkkelordet brukes i den avledede klassen med samme metode / egenskapssignatur som i baseklassen for å oppnå overstyring i den avledede klassen.
Er det obligatorisk å overstyre virtuell metode i C #?
Kompilatoren vil aldri tvinge programmerere til å overstyre en virtuell metode. Det kreves ikke alltid av den avledede klassen å overstyre den virtuelle metoden.
Eksempel
La oss se på et eksempel for å forstå klarere om de virtuelle metodene.
hva du skal åpne xml-filer med
I dette eksemplet bruker vi to forskjellige metoder i basisklassen, den første er en ikke-virtuell metode og den andre er en virtuell metode med det virtuelle nøkkelordet. Begge disse metodene blir overstyrt i den avledede klassen.
La 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'); } }
Produksjon
Resultatet av programmet ovenfor er:
Dette er tilleggsmetode i den avledede klassen
Dette er tilleggsmetode
Dette er overstyringsmetodeoverstyring i avledet klasse
Dette er overstyringsmetodeoverstyring i avledet klasse
Forklaring
I eksemplet ovenfor har vi to klasser, dvs. Antall og Beregn. Baseklassen Number har to metoder, dvs. addisjon og subtraksjon der addisjon er en ikke-virtuell metode og subtraksjon er en virtuell metode. Derfor, når vi kjører dette programmet, blir den virtuelle baseklassemetoden 'tillegg' overstyrt i den avledede klassen Beregn.
I en annen klasse 'Program' oppretter vi et inngangspunkt for å opprette en forekomst av den avledede klassen Beregn, og deretter tildeler vi den samme forekomsten til forekomstobjektet til baseklassen.
Når vi kaller de virtuelle og ikke-virtuelle metodene ved å bruke klasseinstansene, ser vi at den virtuelle metoden ble overstyrt ved å bruke begge forekomster, mens den ikke-virtuelle metoden bare ble overstyrt mens vi kalte den avledede klassen.
Konklusjon
Bruksuttalelsen i C # brukes hovedsakelig til ressursadministrasjon. Bruksuttalelsen definerer en betinget grense for eksistensen av et objekt.
Når kjøringen beveger seg ut av uttalelsesblokken, forteller den rammeverket å ødelegge ethvert objekt som ble opprettet inne i setningsblokken. Kode som er definert inne i uttalelsen, skal også implementere et ID-disponibelt grensesnitt for å tillate .Net-rammeverket å kalle avhendingsmetoden for de definerte objektene.
En virtuell metode lar brukeren overstyre en metode i den avledede klassen som har samme signatur som metoden i basisklassen. Den virtuelle metoden kan brukes til å oppnå polymorfisme i objektorienterte programmeringsspråk.
En virtuell metode brukes hovedsakelig når ekstra funksjonalitet er nødvendig i den avledede klassen. Virtuelle metoder kan ikke være private statiske eller abstrakte. Det defineres ved å bruke et virtuelt nøkkelord i baseklassen og overstyre nøkkelordet i den avledede klassen.
=> Se på dybdegående C # -opplæringsveiledninger her
Anbefalt lesing
- Python DateTime Tutorial med eksempler
- Selen Find Element By Text Tutorial med eksempler
- MongoDB Sort () Metode med eksempler
- MongoDB spørringsdokument ved hjelp av Find () -metoden (eksempler)
- Bruk av markør i MongoDB med eksempler
- C # Klasser og objekter: En grundig opplæring med eksempler
- Unix Shell Scripting Tutorial med eksempler
- C # Exception Handling Tutorial med kodeeksempler