c using statement c virtual method tutorial with examples
Denne dybdegående vejledning forklarer alt om C # ved hjælp af udsagn og virtuel metode. Du lærer også forskellen mellem abstrakte og virtuelle metoder:
Brugsblokken hjælper primært med at administrere ressourcer, det giver systemet mulighed for at administrere sine ressourcer ved at specificere objektets omfang og dets ressourcebehov.
.Net Framework tilbyder forskellige måder til ressourcehåndtering af objekter ved hjælp af en affaldssamler. Det betyder, at du ikke behøver eksplicit at allokere og fjerne hukommelsesobjekter. Rengøringshandling for ethvert ikke-administreret objekt håndteres ved hjælp af destruktor.
For at hjælpe programmører med at opnå dette giver C # ved hjælp af udsagn en betingelse for ødelæggelsen af objektet.
=> Tjek den gratis C # træningsvejledning her .
For at opnå automatisk ødelæggelse af objektet tilbyder C # en bortskaffelsesmetode, der kan kaldes, når objektet ikke længere er påkrævet. Brugsangivelsen i C # definerer en betinget grænse for objektets eksistens. Når eksekveringssekvensen forlader den anvendte grænse, ved .Net-rammen, at det er tid til at ødelægge objektet.
Hvad du vil lære:
C # Brug af erklæring
Implementér ID-engangsgrænseflade til brug
C # Brug af udsagn giver programmørerne mulighed for at implementere flere ressourcer i en erklæring. Alle objekter, der er defineret inde i den anvendte kodeblok, skal implementere IDisposable-grænsefladen, og dette giver rammen mulighed for at kalde disponeringsmetoderne til de angivne objekter inde i erklæringen, når den er afsluttet.
Eksempel
Brug af udsagn kan kombineres med en type, der kan implementere IDisposable som StreamWriter, StreamReader osv.
Lad os se på et simpelt program:
hvad er sporbarhedsmatrix i softwaretest
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
Output fra ovenstående program:
Inde ved hjælp af udsagn
Bortskaf metoden
Uden for den anvendte sætningsblok
Forklaring
I ovenstående eksempel tildeles først 'SysObj' -forekomsten, når programmet udføres, i hukommelsesbunken. Derefter begynder brugsblokken at udføre og udskriver det output, som vi definerede inde i konsollen. Derefter overføres udførelsen straks til disponeringsmetoden, når brugsanmeldelsesblokken kommer over.
Derefter kommer koden ud af sætningsblokken og udskriver den udvendige erklæring til konsollen.
C # Virtuel metode
Hvad er en virtuel metode?
En virtuel metode er en klassemetode, der tilbyder programmøren funktionalitet til at tilsidesætte en metode i den afledte klasse, der har den samme signatur. Virtuelle metoder bruges hovedsageligt til at udføre polymorfisme i OOP-miljøet.
En virtuel metode kan have en implementering i både afledte og baseklasser. Det bruges hovedsageligt, når en bruger skal have mere funktionalitet i den afledte klasse.
En virtuel metode oprettes først i en basisklasse, og derefter tilsidesættes den i den afledte klasse. En virtuel metode kan oprettes i baseklassen ved hjælp af det 'virtuelle' nøgleord, og den samme metode kan tilsidesættes i den afledte klasse ved hjælp af nøgleordet 'tilsidesætte'.
Virtuelle metoder: Få punkter at huske
- Den virtuelle metode i den afledte klasse har det virtuelle nøgleord, og metoden i afledt klasse skal have et tilsidesat nøgleord.
- Hvis en metode erklæres som en virtuel metode i baseklassen, kræves det ikke altid af den afledte klasse at tilsidesætte denne metode, dvs. at den er valgfri at tilsidesætte en virtuel metode i den afledte klasse.
- Hvis en metode har den samme definition i både basisklassen og den afledte klasse, er det ikke nødvendigt at tilsidesætte metoden. Tilsidesættelse er kun påkrævet, hvis begge har en anden definition.
- Den overordnede metode giver os mulighed for at bruge mere end en form til den samme metode, derfor viser den også polymorfisme.
- Alle metoder er som standard ikke-virtuelle.
- En virtuel modifikator kan ikke bruges sammen med private, statiske eller abstrakte modifikatorer.
Hvad er brugen af virtuelt søgeord i C #?
Det virtuelle nøgleord i C # bruges til at tilsidesætte baseklassemedlemmet i dets afledte klasse baseret på kravet.
hvordan man laver makefile c ++
Et virtuelt nøgleord bruges til at specificere den virtuelle metode i basisklassen, og metoden med den samme signatur, der skal tilsidesættes i den afledte klasse, indledes med tilsidesættelse af nøgleord.
Forskellen mellem abstrakt metode og virtuel metode
Virtuelle metoder indeholder implementering og tillader den afledte klasse at tilsidesætte den, mens den abstrakte metode ikke giver nogen implementering, og det tvinger programmørerne til at skrive tilsidesættelsesmetoder i den afledte klasse.
Derfor har de abstrakte metoder med enkle ord ingen kode i sig, mens den virtuelle metode har sin egen implementering.
Forskellen mellem virtuel og tilsidesættelse i C #
Det virtuelle nøgleord følges normalt af signaturen for metoden, egenskaben osv. Og gør det muligt at tilsidesætte det i den afledte klasse. Overordnet nøgleord bruges i den afledte klasse med samme metode / egenskabssignatur som i basisklassen for at opnå tilsidesættelse i den afledte klasse.
Er det obligatorisk at tilsidesætte virtuel metode i C #?
Compileren tvinger aldrig programmører til at tilsidesætte en virtuel metode. Det kræves ikke altid af den afledte klasse at tilsidesætte den virtuelle metode.
Eksempel
Lad os se på et eksempel for bedre at forstå de virtuelle metoder.
I dette eksempel bruger vi to forskellige metoder i baseklassen, den første er en ikke-virtuel metode og den anden er en virtuel metode med det virtuelle nøgleord. Begge disse metoder tilsidesættes i den afledte klasse.
Lad os se på:
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
Output fra ovenstående program er:
Dette er tilføjelsesmetode i den afledte klasse
Dette er tilføjelsesmetode
Dette er subtraktionsmetode tilsidesættelse i afledt klasse
Dette er subtraktionsmetode tilsidesættelse i afledt klasse
Forklaring
I eksemplet ovenfor har vi to klasser, dvs. Tal og Beregn. Baseklassen Number har to metoder, dvs. addition og subtraktion, hvor addition er en ikke-virtuel metode, og subtraktion er en virtuel metode. Derfor, når vi udfører dette program, tilsidesættes den virtuelle baseklassemetode 'tilføjelse' i den afledte klasse Beregn.
I en anden klasse 'Program' opretter vi et indgangspunkt for at oprette en forekomst af den afledte klasse Beregn, og derefter tildeler vi den samme forekomst til forekomstobjektet for baseklassen.
Når vi kalder de virtuelle og ikke-virtuelle metoder ved hjælp af klasseinstanserne, ser vi, at den virtuelle metode blev tilsidesat ved at bruge begge forekomsterne, mens den ikke-virtuelle metode kun blev tilsidesat, mens vi kalder den afledte klasse.
Konklusion
Brugserklæringen i C # bruges hovedsageligt til ressourcestyring. Brugerudtalelsen definerer en betinget grænse for eksistensen af et objekt.
Når udførelsen flyttes ud af udsagnsblokken, fortæller den rammen om at ødelægge ethvert objekt, der blev oprettet inde i sætningsblokken. Kode, der er defineret inde i erklæringen, skal også implementere en ID-disponibel grænseflade for at tillade. Net-framework at kalde disponeringsmetoden til de definerede objekter.
c ++ udefineret henvisning til klassefunktion
En virtuel metode giver brugeren mulighed for at tilsidesætte en metode i den afledte klasse, der har den samme signatur som metoden i basisklassen. Den virtuelle metode kan bruges til at opnå polymorfisme i objektorienterede programmeringssprog.
En virtuel metode bruges hovedsageligt, når der kræves ekstra funktionalitet i den afledte klasse. Virtuelle metoder kan ikke være private statiske eller abstrakte. Det defineres ved hjælp af et virtuelt nøgleord i baseklassen og tilsidesætter nøgleordet i den afledte klasse.
=> Hold øje med de dybtgående C # -træningsvejledninger her
Anbefalet læsning
- Python DateTime-tutorial med eksempler
- Selen Find Element by Text Tutorial med eksempler
- MongoDB Sort () metode med eksempler
- MongoDB-forespørgselsdokument ved hjælp af Find () -metoden (eksempler)
- Brug af markør i MongoDB med eksempler
- C # Klasser og objekter: En grundig tutorial med eksempler
- Unix Shell Scripting Tutorial med eksempler
- C # Exception Handling Tutorial med kodeeksempler