C# tilgangsmodifiserer

C# tilgangsmodifiserer
Access Modifiers er et must-have i enhver objektorientert programmering. Tilgangsmodifikatorene brukes til å beskytte dataene dine ved å bruke dem med datamedlemmer og medlemsfunksjoner. Disse tilgangsmodifikatorene er: offentlige, private, beskyttede og interne i henhold til kildene. Den interne tilgangsmodifisereren fungerer på samme måte som det private tilgangsmedlemmet gjør, men på forskjellige nivåer av programmering. Den private modifisereren fungerer på klassenivå mens den interne modifisereren fungerer på monteringsnivå.

Eksempel # 01:

Før vi ser på bruken av den interne tilgangsmodifisereren, må vi se på den "private" tilgangsmodifisereren i C# -programmeringen først. Vi har satt i gang vår første illustrasjon med bruk av "system" -biblioteket. Så vi har brukt det brukerdefinerte navneområdet som heter “Ny” som inneholder totalt to klasser i IT.

Klassen “Test” inneholder hoved () -funksjonen i den for å starte utførelsen av denne koden. Konsollen.WritLine () uttalelse i denne Main () driverfunksjonen brukes til å vise teksten “Hovedmetode for testklasse” på skjermene våre. Et objekt “OBJ” for klassen “New” er opprettet ved hjelp av klassenavnet. Klassen “New”, inneholder et privat datamedlem “X” av heltallstype med verdien “14”. Dette betyr at verdien av variabel “x” ikke kan nås ved noen annen funksjon av andre klasser selv om de er avledet.

Main () -funksjonen er å bruke objektet “OBJ” i den nye klassen for å oppdatere verdien av det private datamedlemmet “X” for klassen “New” I.e. ikke mulig akkurat nå. Etter å ha ringt showet () funksjonen med objektet “OBJ” i Main () -metoden, må utførelsen av Show () -metoden med den “offentlige” tilgangsmodifisereren foregått sted. Det virker ikke slik på grunn av den private tilgangsmodifisereren med "X" -variabelen. Begge klassene er fullført og koden er klar til bruk. Vi må lagre det først med Ctrl+S og avslutte redaktøren ved å lukke det ved hjelp av Cross -tegnet fra Text Editor.

Etter at koden er lagret, må du sammenstille den ved bruk av “MCS” C# -kompilatoren som allerede er konfigurert i Linux. Dette trinnet viser oss feilen som har oppstått på linje 12 i vår C# -kode, i.e. Variabel “x” kan ikke nås i testklassen, da den er definert med den private tilgangsmodifisereren. Så vi må fikse denne feilen.

Vi har åpnet C# -filen igjen i Text Editor og oppdatert koden ved å erstatte den private tilgangsmodifisereren til variabel “x” med den offentlige tilgangsmodifisereren. Vi vil ikke endre den gjenværende koden, da den ikke er nødvendig. Så lagre den nylig oppdaterte koden igjen.

Når vi har brukt MCS Compiler -kommandoen på skallet etterfulgt av navnet på en C# -fil, ble koden samlet vellykket. Etter det har vi utført “EXE” -filen opprettet av kompilatoren av C# på skallet, og utgangen er vist i.e. En verdi av “X” ble oppdatert.

Eksempel # 02:

Nå skal vi se på bruken av de interne tilgangsmodifikatorene for å definere omfanget av noen variabler i klassene til C# -kode. Så vi har startet dette C# -eksemplet med bruk av systembiblioteket og opprettet et navneområde “nytt” i det. Dette navneområdet inneholder to uavhengige klasser som heter “New” og “Test” i det. Klassen “Test” inneholder hoved () driverkodefunksjon, mens den “nye” klassen inneholder heltallvariabelen “x” som har en verdi på 14 definert med den interne tilgangsmodifisereren og showet () -funksjonen ().

Det nye klasseobjektet "OBJ" er blitt generert med bruk av det "nye" søkeordet etterfulgt av navnet på en klasse. Dette objektet med den nye klassen er blitt brukt på neste linje for å oppdatere verdien av "x" -variabelen med "0". Nå vil variabelen “X” bli oppdatert med hell ettersom variabelen “X” er definert med intern tilgangsmodifiserer innenfor samme navneområde -enhet “Ny”. Show () -funksjonen har blitt kalt med samme objekt “OBJ”. Når showet () -funksjonen blir utført, vil den vise den oppdaterte verdien av “X” på skallet via konsollen.WritLine () funksjonserklæring.

Det er på tide å raskt lagre kodefilen vår med Ctrl+S og komme tilbake til terminalen igjen. I skallet har vi kjørt “MCS” -kommandoen for C# -kodesamlingen for å kjøre “Internal.cs ”-fil. Denne samlingen har vært vellykket og den kompilerte "exe" -filen for den interne.CS er opprettet i vår nåværende arbeidskatalog. Vi bruker den "exe" -filen for å kjøre den med "mono" runtime -kommandoen i skallet. Utgangen har blitt vist med hell som nedenfor. Hoved () -funksjonen ble utført først i henhold til strengen som ble vist, og etter det vises den oppdaterte verdien “0” for variabel “x”.

Slik fungerer en intern tilgangsmodifiserer i C# -koden når den har blitt brukt i samme navneområde. La oss gjøre endringer i koden vår for å se hvordan en intern tilgangsmodifiserer påvirker utførelsen av C# -koden når den brukes blant mer enn en samling. La oss si at du har laget to navnefelt i samme C# -kode i.e. Ny og test.

Innenfor det nye navneområdet har vi laget en ny klasse og initialisert en variabel “X” med intern tilgangsmodifiserer med verdien 14. Den samme klassen Namespace New inneholder show () -funksjonen for å vise verdien av “X”. På den annen side inneholder navneområdet testen en klassetest som har en hovedfunksjon (). Denne hovedfunksjonen () er å lage et objekt av klasse nytt fra det andre navneområdet “Ny”. Det samme objektet har blitt brukt for å endre verdien av variabel “x” og ringe show () -funksjonen for å vise den oppdaterte verdien av variabel “x”. Nå er variabelen “X” definert i navneområdet “New”, mens objektet prøver å få tilgang til det innenfor det andre navneområdet “Test”. På grunn av den interne tilgangsmodifisereren med variabel "x", kan vi møte en feil. La oss se det nå.

Etter å ha samlet denne koden, har vi fått feilen som forventet, jeg.e. Type beskyttet.

For å unngå denne feilen ved sammenstilling, må vi gjøre noen oppdateringer til koden som vi gjorde i koden over fra siste kode. Så vi har fjernet navneområdet “nytt” fra koden og fjernet ikke testnavnet fra koden som vist under.

Etter kodesamling og utførelse ble den utført vellykket og viste den modifiserte verdien av variabel “x” på skallet uavhengig av dens interne type.

Konklusjon

Vi er ferdige med å implementere eksemplene for den interne tilgangsmodifisereren i C#. Vi har startet denne artikkelen med eksemplet med å diskutere den private tilgangsmodifisereren for å sammenligne den med de interne tilgangsmodifikatorene, da begge gjør den samme jobben på forskjellige nivåer av programmering. Vi har prøvd å bruke den interne tilgangsmodifisereren innenfor samme navneområde, to forskjellige navneområder, og i klassen har ingen navneområder definert. På denne måten har vi utdypet bruken av den for beskyttelse av datamedlemsvariabler og funksjon i C#.