Få tilgang til modifikatorer (spesifikasjoner) i C# med programeksempler

Hva er Access Modifier (Specifier) ​​i C#?

Tilgangsmodifikatorer eller Access Specifiers i C# er nøkkelordene som brukes til å definere synligheten til en klasseegenskap eller metode. Den brukes når du ikke vil at andre programmer skal se egenskapene eller metodene til en klasse. Tilgangsmodifikatorer begrenser tilgangen slik at andre programmer ikke kan se egenskapene eller metodene til en klasse.

Det er 6 typer tilgangsmodifikatorer i C#:

  • Privat
  • offentlig
  • beskyttet
  • Intern
  • Beskyttet intern
  • Privat beskyttet

Vi vil lære om hovedtilgangsmodifikatorene i C# med programeksempler som forklart nedenfor.

Modifikatorer for privat tilgang i C#

Når modifikatoren for privat tilgang er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene ikke kan nås fra noe eksternt program.

Eksempel på Modifikator for privat tilgang

La oss ta et eksempel og se hva som skjer når vi bruker modifikatoren for privat tilgang.

La oss endre gjeldende kode i vår Tutorial.cs-fil. I SetTutorial-metoden, la oss endre det offentlige nøkkelordet til privat.

Modifikatorer for privat tilgang

La oss nå bytte til vår Program.cs-fil. Du vil legge merke til at det er en rød kronglete linje under SetTutorial-metoden.

Siden vi nå har erklært SetTutorial-metoden som privat i opplæringsklassen vår, har Visual Studio oppdaget dette. Den har fortalt brukeren ved å markere den at nå vil denne metoden ikke fungere fra Program.cs-filen.

Modifikator for privat tilgang

C# Public Access Modifikatorer

Når Offentlig tilgang-modifikator er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene kan nås fra et hvilket som helst eksternt program. Vi har allerede sett dette i våre tidligere eksempler.

Eksempel på Public Access Modifier

C# Public Access Modifikatorer

Siden vi har definert metodene våre som offentlige i opplæringsklassen, kan de nås fra Program.cs-filen.

Protected Access Modifiers i C#

Når beskyttet tilgangsmodifikator er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene kun kan nås av klasser arvet fra gjeldende klasse. Dette vil bli forklart nærmere i Arvklassen.

C# interne tilgangsmodifikatorer

Når en intern tilgangsmodifikator er knyttet til enten en egenskap eller en metode, kan disse medlemmene bare nås av et internt program, men ikke av et eksternt program.

C#-konstruktør

C# Konstruktører er vant til å initialisere verdiene til klassefelt når de tilsvarende objektene deres opprettes. En konstruktør er en metode som har samme navn som klassen. Hvis en konstruktør er definert i en klasse, vil den gi den første metoden som kalles når et objekt opprettes. Tenk om vi hadde en klasse som heter Ansatt. Konstruktørmetoden vil også bli navngitt som Employee().

Følgende viktige ting må bemerkes om konstruktørmetoder

  1. C# standard tilgangsmodifikator for konstruktøren må gjøres som offentlig.
  2. Det skal ikke være noen returtype for konstruktørmetoden.

Eksempel på C# Constructor

La oss nå se hvordan vi kan inkludere brukeren av konstruktører i koden vår. Vi vil bruke konstruktører for å initialisere TutorialID- og TutorialName-feltene til noen standardverdier når objektet opprettes.

Trinn 1) Det første trinnet er å lage konstruktøren for opplæringsklassen vår. I dette trinnet legger vi til koden nedenfor i Tutorial.cs-filen.

C#-konstruktør

Kodeforklaring:-

  1. Vi legger først til en ny metode som har samme navn som klassen. Fordi det er samme navn som klassen, behandler C# dette som en konstruktørmetode. Så nå når kallemetoden oppretter et objekt av denne klassen, vil denne metoden bli kalt som standard.
  2. I Tutorial-konstruktøren setter vi verdien av TutorialID til 0 og TutorialName til "Standard". Så hver gang et objekt opprettes, vil disse feltene alltid ha disse standardverdiene.

La oss nå bytte til vår Program.cs-fil og bare fjerne linjen, som kaller SetTutorial-metoden. Dette 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 trinnet er å lage et objekt for opplæringsklassen. Dette gjøres via søkeordet 'nye'.
  2. Vi bruker GetTutorial-metoden til Tutorial-klassen for å få TutorialName. Dette vises deretter til konsollen via Console.WriteLine-metoden.

Hvis koden ovenfor angis riktig og programmet kjøres, vil følgende utgang vises.

Utgang:

C#-konstruktør

Fra utdataene kan vi se at konstruktøren faktisk ble kalt og at verdien til TutorialName ble satt til "Standard".

OBS: Her hentes verdien "default" fra konstruktøren.

Sammendrag

  • C# Access Modifiers eller Access Specifiers brukes til å definere synligheten til en klasseegenskap eller metode.
  • Når modifikatoren for privat tilgang er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene ikke kan nås fra noe eksternt program.
  • Når Offentlig tilgang-modifikator er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene kan nås fra et hvilket som helst eksternt program.
  • Når beskyttet tilgangsmodifikator er knyttet til enten en egenskap eller en metode, betyr det at disse medlemmene kun kan nås av klasser som er arvet fra gjeldende klasse.
  • Når en intern tilgangsmodifikator er knyttet til enten en egenskap eller en metode, kan disse medlemmene bare nås av et internt program, men ikke av et eksternt program.
  • C#-konstruktører brukes til å initialisere verdiene til klassefelt når de tilsvarende objektene deres opprettes.