Få adgang til Modifiers (Specifiers) i C# med programeksempler
Hvad er Access Modifier (Specifier) i C#?
Adgangsmodifikatorer eller Access Specifiers i C# er de nøgleord, der bruges til at definere synligheden af en klasseegenskab eller -metode. Det bruges, når du ikke ønsker, at andre programmer skal se egenskaberne eller metoderne for en klasse. Adgangsmodifikatorer begrænser adgangen, så andre programmer ikke kan se egenskaberne eller metoderne for en klasse.
Der er 6 typer adgangsmodifikatorer i C#:
- Privat
- offentlige
- Beskyttet
- Intern
- Beskyttet indre
- Privat beskyttet
Vi vil lære om de vigtigste adgangsmodifikatorer i C# med programeksempler som forklaret nedenfor.
Modifikatorer for privat adgang i C#
Når Privat adgangsmodifikator er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer ikke kan tilgås fra noget eksternt program.
Eksempel på modifikator for privat adgang
Lad os tage et eksempel og se, hvad der sker, når vi bruger den private adgangsmodifikator.
Lad os ændre den aktuelle kode i vores Tutorial.cs-fil. Lad os i SetTutorial-metoden ændre det offentlige søgeord til privat.
Lad os nu skifte til vores Program.cs-fil. Du vil bemærke, at der er en rød snoet linje under SetTutorial-metoden.
Da vi nu har erklæret SetTutorial-metoden som privat i vores Tutorial-klasse, har Visual Studio opdaget dette. Det har fortalt brugeren ved at fremhæve det, at nu vil denne metode ikke fungere fra filen Program.cs.
C# Public Access-modifikatorer
Når Public access modifier er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer kan tilgås fra ethvert eksternt program. Det har vi allerede set i vores tidligere eksempler.
Eksempel på Public Access Modifier
Da vi har defineret vores metoder som offentlige i klassen Tutorial, kan de tilgås fra filen Program.cs.
Beskyttede adgangsmodifikatorer i C#
Når beskyttet adgangsmodifikator er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer kun kan tilgås af klasser arvet fra strømmen klasse. Dette vil blive forklaret mere detaljeret i klassen Arv.
C# interne adgangsmodifikatorer
Når en intern adgangsmodifikator er knyttet til enten en egenskab eller en metode, kan disse medlemmer kun tilgås af et internt program, men ikke af et eksternt program.
C# konstruktør
C# Konstruktører er vant til at initialisere værdierne af klassefelter, når deres tilsvarende objekter oprettes. En konstruktør er en metode, der har samme navn som klassens. Hvis en konstruktør er defineret i en klasse, vil den give den første metode, som kaldes, når et objekt oprettes. Antag, hvis vi havde en klasse, der hed Medarbejder. Konstruktørmetoden vil også blive navngivet som Employee().
Følgende vigtige ting skal bemærkes om konstruktørmetoder
- C#-standardadgangsmodifikatoren for konstruktøren skal gøres som offentlig.
- Der bør ikke være nogen returtype for konstruktørmetoden.
Eksempel på C# Constructor
Lad os nu se, hvordan vi kan inkorporere brugeren af konstruktører i vores kode. Vi vil bruge konstruktører til at initialisere felterne TutorialID og TutorialName til nogle standardværdier, når objektet oprettes.
Trin 1) Det første trin er at oprette konstruktøren til vores Tutorial-klasse. I dette trin tilføjer vi nedenstående kode til filen Tutorial.cs.
Kodeforklaring:-
- Vi tilføjer først en ny metode, som har samme navn som klassens. Fordi det er det samme navn som klassen, behandler C# dette som en konstruktørmetode. Så nu når den kaldende metode opretter et objekt af denne klasse, vil denne metode blive kaldt som standard.
- I Tutorial-konstruktøren sætter vi værdien af TutorialID til 0 og TutorialName til "Standard". Så hver gang et objekt oprettes, vil disse felter altid have disse standardværdier.
Lad os nu skifte til vores Program.cs-fil og bare fjerne linjen, som kalder SetTutorial-metoden. Det er fordi vi bare vil se, hvordan konstruktøren fungerer.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public Tutorial() { TutorialID=0; TutorialName="Default"; } public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Kodeforklaring:-
- Det første trin er at oprette et objekt til Tutorial-klassen. Dette gøres via det 'nye' søgeord.
- Vi bruger GetTutorial-metoden i Tutorial-klassen for at få TutorialName. Dette vises derefter til konsollen via Console.WriteLine-metoden.
Hvis ovenstående kode er indtastet korrekt, og programmet køres, vil følgende output blive vist.
Output:
Fra outputtet kan vi se, at konstruktøren faktisk blev kaldt, og at værdien af TutorialName blev sat til "Standard".
Bemærk: Her hentes værdien "default" fra konstruktøren.
Resumé
- C# Access Modifiers eller Access Specifiers bruges til at definere synligheden af en klasseegenskab eller metode.
- Når Privat adgangsmodifikator er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer ikke kan tilgås fra noget eksternt program.
- Når Public access modifier er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer kan tilgås fra ethvert eksternt program.
- Når beskyttet adgangsmodifikator er knyttet til enten en egenskab eller en metode, betyder det, at disse medlemmer kun kan tilgås af klasser, der er arvet fra den aktuelle klasse.
- Når en intern adgangsmodifikator er knyttet til enten en egenskab eller en metode, kan disse medlemmer kun tilgås af et internt program, men ikke af et eksternt program.
- C#-konstruktører er vant til at initialisere værdierne af klassefelter, når deres tilsvarende objekter oprettes.