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.

Modifikatorer for privat adgang

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.

Modifikator for privat adgang

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

C# Public Access-modifikatorer

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

  1. C#-standardadgangsmodifikatoren for konstruktøren skal gøres som offentlig.
  2. 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.

C# konstruktør

Kodeforklaring:-

  1. 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.
  2. 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.

C# konstruktør

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:-

  1. Det første trin er at oprette et objekt til Tutorial-klassen. Dette gøres via det 'nye' søgeord.
  2. 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:

C# konstruktør

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.