Toegang tot modifiers (specificaties) in C# met programmavoorbeelden

Wat is Access Modifier (Specifier) ​​in C#?

Toegangsmodificaties of Access Specifiers in C# zijn de sleutelwoorden die worden gebruikt om de zichtbaarheid van een klasseneigenschap of -methode te definiëren. Het wordt gebruikt als u niet wilt dat andere programma's de eigenschappen of methoden van een klasse zien. Toegangsmodificatoren beperken de toegang zodat andere programma's de eigenschappen of methoden van een klasse niet kunnen zien.

Er zijn 6 soorten toegangsmodifiers in C#:

  • Privé
  • Publieke
  • Beschermd
  • Intern
  • Beschermd intern
  • Privé beschermd

We zullen de belangrijkste toegangsmodificatoren in C# leren kennen met programmavoorbeelden zoals hieronder uitgelegd.

Modifiers voor privétoegang in C#

Wanneer de Private Access Modifier aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden niet toegankelijk zijn vanuit een extern programma.

Voorbeeld van een privétoegangsmodificator

Laten we een voorbeeld nemen en kijken wat er gebeurt als we de privétoegangsmodifier gebruiken.

Laten we de huidige code in ons Tutorial.cs-bestand wijzigen. Laten we in de SetTutorial-methode het openbare sleutelwoord wijzigen in privé.

Modificatoren voor privétoegang

Laten we nu overschakelen naar ons Program.cs-bestand. U zult merken dat er een rode kronkelige lijn is onder de SetTutorial-methode.

Omdat we de SetTutorial-methode nu als privé hebben gedeclareerd in onze Tutorial-klasse, heeft Visual Studio dit gedetecteerd. Het heeft de gebruiker verteld door het te markeren dat deze methode nu niet meer zal werken vanuit het bestand Program.cs.

Modificatie voor privétoegang

C# Modifiers voor openbare toegang

Wanneer de modifier voor openbare toegang aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden toegankelijk zijn vanuit elk extern programma. We hebben dit al gezien in onze eerdere voorbeelden.

Voorbeeld van een modifier voor openbare toegang

C# Modifiers voor openbare toegang

Omdat we onze methoden in de klasse Tutorial als openbaar hebben gedefinieerd, zijn ze toegankelijk via het bestand Program.cs.

Beschermde toegangsmodificatoren in C#

Wanneer de Protected Access Modifier aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden alleen toegankelijk zijn voor klassen geërfd van de huidige klasse. Dit wordt in meer detail uitgelegd in de Overervingsklasse.

C# Interne toegangsmodificatoren

Wanneer een interne toegangsmodifier aan een eigenschap of een methode is gekoppeld, zijn deze leden alleen toegankelijk voor een intern programma, maar niet voor een extern programma.

C#-constructeur

C# Constructors worden gebruikt om de waarden van klassenvelden te initialiseren wanneer de bijbehorende objecten worden gemaakt. Een constructor is een methode die dezelfde naam heeft als die van de klasse. Als een constructor in een klasse is gedefinieerd, zal deze de eerste methode bieden die wordt aangeroepen wanneer een object wordt gemaakt. Stel dat we een klasse hadden met de naam Werknemer. De constructormethode zou ook de naam Employee() krijgen.

De volgende belangrijke zaken moeten worden opgemerkt over constructormethoden

  1. De standaardtoegangsmodifier in C# voor de constructor moet openbaar worden gemaakt.
  2. Er mag geen retourtype zijn voor de constructormethode.

Voorbeeld van C#-constructor

Laten we nu kijken hoe we de gebruiker van constructors in onze code kunnen opnemen. We zullen constructors gebruiken om de velden TutorialID en TutorialName te initialiseren naar een aantal standaardwaarden wanneer het object wordt gemaakt.

Stap 1) De eerste stap is het maken van de constructor voor onze Tutorial-klasse. In deze stap voegen we de onderstaande code toe aan het bestand Tutorial.cs.

C#-constructeur

Code-uitleg: -

  1. We voegen eerst een nieuwe methode toe die dezelfde naam heeft als die van de klasse. Omdat het dezelfde naam heeft als de klasse, behandelt C# dit als een constructormethode. Dus telkens wanneer de aanroepende methode een object van deze klasse aanmaakt, wordt deze methode standaard aangeroepen.
  2. In de Tutorial-constructor stellen we de waarde van TutorialID in op 0 en TutorialName op "Default". Wanneer er dus een object wordt gemaakt, hebben deze velden altijd deze standaardwaarden.

Laten we nu overschakelen naar ons Program.cs-bestand en gewoon de regel verwijderen, die de SetTutorial-methode aanroept. Dit komt omdat we gewoon willen zien hoe de constructor werkt.

C#-constructeur

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(); 
  }
 }
}

Code-uitleg: -

  1. De eerste stap is het maken van een object voor de klasse Tutorial. Dit gebeurt via het trefwoord 'nieuw'.
  2. We gebruiken de GetTutorial-methode van de Tutorial-klasse om de TutorialName op te halen. Deze wordt vervolgens weergegeven op de console via de Console.WriteLine-methode.

Als de bovenstaande code correct is ingevoerd en het programma wordt uitgevoerd, wordt de volgende uitvoer weergegeven.

Output:

C#-constructeur

Uit de uitvoer kunnen we zien dat de constructor inderdaad is aangeroepen en dat de waarde van de TutorialName is ingesteld op "Default".

Opmerking: Hier wordt de waarde “default” opgehaald uit de constructor.

Samenvatting

  • C# Access Modifiers of Access Specifiers worden gebruikt om de zichtbaarheid van een klasse-eigenschap of methode te definiëren.
  • Wanneer de Private Access Modifier aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden niet toegankelijk zijn vanuit een extern programma.
  • Wanneer de modifier voor openbare toegang aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden toegankelijk zijn vanuit elk extern programma.
  • Wanneer de Protected Access Modifier aan een eigenschap of een methode is gekoppeld, betekent dit dat deze leden alleen toegankelijk zijn voor klassen die zijn geërfd van de huidige klasse.
  • Wanneer een interne toegangsmodifier aan een eigenschap of een methode is gekoppeld, zijn deze leden alleen toegankelijk voor een intern programma, maar niet voor een extern programma.
  • C#-constructors worden gebruikt om de waarden van klassenvelden te initialiseren wanneer de bijbehorende objecten worden gemaakt.