C# Klassekonstruktør

C# Klassekonstruktør

Mens vi jobber på programmeringsspråk, lager vi mange variabler og funksjoner i koden. Disse funksjonene og variablene kan være av en brukerdefinert type, og noen av dem sies å være innebygd. En innebygd funksjon du kanskje har hørt om er konstruktørfunksjonen. Konstruktørfunksjonen er den samme tittelfunksjonen som klassetittelen påkalt av klasseobjektet automatisk når objektet ble opprettet. Det brukes vanligvis i koden for å initialisere noen variable verdier direkte. Konstruktøren kan være av standardkategori uten parametere og kan være av parameterisert kategori. Innenfor denne guiden i dag, vil vi diskutere bruken av begge disse typer konstruktører i våre C# -kodeeksempler implementert på Ubuntu 20.04. La oss starte med terminaloppskytingen og oppdatere systemet ditt før du utfører noe på skallet via “APT” -pakken.

Eksempel # 01: Standard konstruktør

La oss komme i gang med presentasjonen av å bruke standardkonstruktøren i den nye filen i Ubuntu 20.04. For dette, prøv å bruke Ubuntus evige "berøringsinstruksjon for å generere en fil som må inneholde".CS ”utvidelse på slutten for C# programmering. Filen er blitt generert i vår nåværende arbeidskatalog i henhold til listen “LS” -kommandoen.

Åpne filen fra hjemmekatalogen ved å bruke Text Editor for en mer tiltalende og fargerik kodeskjerm som nedenfor. Vi må starte denne koden med utnyttelsen av systemnavnområdet, som er et must i nesten hver C# -kode for generelle formålfunksjoner. Deretter startet vi et klassenavn “Test” og initialiserte en offentlig konstruktør “Test ()” i den for å vise noen tekstmeldinger på skjermen ved hjelp av WritLine () -funksjonen fra konsollklassen til navneområdet “System”. Denne konstruktøren er standard, og dermed inneholder den ingen parametere. Vi har brukt Main () driverfunksjonen her, som er et must i hvert program. Den bruker den samme WritLine () -metoden for å vise en annen skjermmelding på skallskjermen. Nå må du forstå at uten å lage et objekt med "test", vil vi ikke kunne kjøre konstruktøren. Så vi har brukt klassenavnet for å lage objektet “OBJ”, etterfulgt av den “nye” initialisatoren for objekter. Når vi utfører dette programmet, konsollen.WritLine () funksjonserklæring vil bli utført først. Deretter vil opprettelsen av dette objektet kalle konstruktørfunksjonen "test" for å utføre konsollen.Uttalelse () uttalelse.

Når vi kommer tilbake til terminalen, har vi samlet C# -programmet vårt med “MCS” C# Compiler på Ubuntu 20.04. "EXE" -filen for denne C# -filen er generert på samlingen i henhold til "LS" -instruksjonen. Vi har brukt denne "exe" -filen for å kjøre C#-kompilerte koden med MCS-Runtime. Main () funksjonsstrengmeldingen ble vist, og deretter konstruktørstrengmeldingen.

Eksempel # 02: Konstruktør i en annen klasse

Vi har demonstrert implementeringen av en konstruktør i samme klasse der gjenstanden for klassen er opprettet. Nå skal vi se på konstruktøren med gjenstand for klassen i en annen klasse. Du må åpne den samme C# -filen for å oppdatere koden. Her har vi brukt to klasser, “Test” og “New”.

Testklassen inneholder standardkonstruktøren “Test”, mens den nye klassen inneholder en hovedfunksjon () driverfunksjon for dette programmet. Vi har brukt WritLine () -funksjonen til klassekonsollen for navneområdet “System” for å vise noen tekstmeldinger på skallet etter utførelsen av Main () og konstruktøren “Test” -funksjon. Vi har laget et objekt av klasse "test" innen hovedfunksjonen () klasse "ny".

Deretter lagret vi denne koden og samlet den. Etter at vi utførte "Exe" -filen på skallet med "mono-runtime". Main () -funksjonen ble utført og vist sin respektive melding. Etter det ble testklassekonstruktøren kalt ved hjelp av objektet og viste sin strengmelding.

Eksempel # 03: Standard vs. Parameterisert konstruktør

Den parameteriserte konstruktøren kan brukes til å initialisere variabler med verdiene som er gitt av hovedfunksjonen () eller av brukeren ved kjøretid. Innenfor denne programkoden har vi opprettet en "test" og erklært to variabler, i.e., Heltallsvariabel “Alder” og strengvariabel “Navn”. Etter dette implementerte vi standardkonstruktøren "Test" av denne klassen uten parametriske verdier. Det brukes bare til å vise noen meldinger på skallet ved hjelp av WritLine () -funksjonen. Etter dette har vi definert en parameterisert konstruktør "test", og tar to verdier fra hovedfunksjonen () og initialiserer "alder" og "navn" -variabler. Før det viste det også den enkle meldingen om at "innstilling av verdier via konstruktør" ved hjelp av WritLine () -metoden. Den brukerdefinerte "show ()" -funksjonen bruker ganske enkelt "alder" og "navn" -variabler i sin WritLine () -uttalelse for å vise verdiene sine på skallet. Innenfor hovedmetoden () har vi vist noen tekstmeldinger og opprettet klasseobjektet. Vi har brukt dette objektet “OBJ” for å kalle funksjonen “Vis” for å vise meldingen. Vil dette programmet kunne utføre den parameteriserte konstruktøren? La oss gå videre til utførelsesdelen for å se hva som skjer.

Etter å ha samlet kodefilen med MCS og kjørt EXE-filen med Mono-Runtime, har vi følgende utdata. Main () funksjonsstrengmeldingen ble vist, og standardkonstruktøren ble utført i henhold til objektopprettelsen. Showet () -funksjonen ble utført og vist nullverdier til gjengjeld. Dette er fordi vi ikke har gitt noen verdier til den parameteriserte konstruktøren på tidspunktet for objektopprettelsen i Main () -funksjonen.

La oss løse dette problemet ved å oppdatere koden vår igjen. Vi har direkte tildelt en heltall og strengverdi til parametrene til klassen "Test" -konstruktør mens vi oppretter et objekt "OBJ". Etter dette er det samme objektet blitt brukt til å kalle showet () for å vise verdiene.

Denne gangen hoppet den viktigste () -funksjonen hoppet over utførelsen av standardkonstruktøren og kjørte den parameteriserte konstruktøren etter hvert som verdiene har blitt gitt til konstruktøren på tidspunktet for oppretting av objekter. Dette er grunnen til at verdiene til "Alder" og "Navn" -variabler også har blitt vist ved Show () -metoden ved å bruke samme objekt "OBJ" i "Test" -klassen.

Hvis du vil kjøre begge konstruktørene etter hverandre, må du lage forskjellige objekter. Så vi har opprettet et objekt “OBJ1” for standard konstruktøranrop og objektet “OBJ2” for parametrisert konstruktøranrop og dets tildelte verdi. Siden vi har tildelt verdien til den parameteriserte konstruktøren ved å bruke objektet “OBJ2”, må vi bruke det samme objektet “OBJ2” for å kalle funksjonshowet () for å vise verdiene. Ellers vil det ikke fungere.

På kodesammensetning og utførelse ble Main () -funksjonsmeldingen, både konstruktørmeldinger og showet () -funksjonen utført, som vist nedenfor:

Konklusjon

Innenfor artikkelenes innledende avsnitt har vi diskutert bruken av konstruktører i programmering sammen med deres typer. Vi har også diskutert hvordan en konstruktørfunksjon er forskjellig fra de normale brukerdefinerte eller innebygde funksjonene som Main () -metoden. Vi har utdypet ved å bruke standard og parameteriserte konstruktører gjennom eksemplene våre og forklarte tydelig deres sammenligning. I tillegg har vi diskutert de enkle og forskjellige måtene å ringe begge typer konstruktører ved hjelp av klasseobjektene.