Módosítók (specifikációk) elérése C#-ban programpéldákkal

Mi az az Access Modifier (Specifier) ​​a C#-ban?

Hozzáférés módosítók vagy az Access Specifiers a C#-ban egy osztálytulajdonság vagy metódus láthatóságának meghatározására használt kulcsszavak. Akkor használatos, ha nem szeretné, hogy más programok lássák egy osztály tulajdonságait vagy metódusait. A hozzáférés-módosítók korlátozzák a hozzáférést, így más programok nem láthatják egy osztály tulajdonságait vagy metódusait.

A C#-ban 6 típusú hozzáférés-módosító létezik:

  • Magán
  • nyilvános
  • Védett
  • belső
  • Védett belső
  • Privát védett

A C# fő hozzáférési módosítóiról programpéldákkal fogunk megismerkedni, az alábbiak szerint.

Privát hozzáférés-módosítók a C#-ban

Ha a Privát hozzáférés módosító egy tulajdonsághoz vagy metódushoz van csatolva, az azt jelenti, hogy ezek a tagok semmilyen külső programból nem érhetők el.

Példa a privát hozzáférés-módosítóra

Vegyünk egy példát, és nézzük meg, mi történik, ha a privát hozzáférés módosítót használjuk.

Módosítsuk az aktuális kódot a Tutorial.cs fájlunkban. A SetTutorial metódusban változtassuk a nyilvános kulcsszót privátra.

Privát hozzáférés-módosítók

Most térjünk át a Program.cs fájlunkra. Észreveheti, hogy a SetTutorial metódus alatt egy piros kacskaringós vonal látható.

Mivel a SetTutorial metódust most privátnak nyilvánítottuk a Tutorial osztályunkban, a Visual Studio ezt észlelte. Kiemelve közölte a felhasználóval, hogy most ez a módszer nem fog működni a Program.cs fájlból.

Privát hozzáférés módosító

C# nyilvános hozzáférés-módosítók

Ha egy tulajdonsághoz vagy metódushoz nyilvános hozzáférés módosító van csatolva, az azt jelenti, hogy ezek a tagok bármely külső programból elérhetők. Ezt már láthattuk korábbi példáinkban.

Példa nyilvános hozzáférés-módosítóra

C# nyilvános hozzáférés-módosítók

Mivel metódusainkat nyilvánosként határoztuk meg a Tutorial osztályban, a Program.cs fájlból érhetők el.

Védett hozzáférés-módosítók a C#-ban

Ha a védett hozzáférés módosító egy tulajdonsághoz vagy metódushoz van csatolva, az azt jelenti, hogy ezek a tagok csak a következőkkel érhetők el osztályok örököltek az áramból osztály. Ezt részletesebben az Öröklés osztályban magyarázzuk meg.

C# belső hozzáférés-módosítók

Ha egy tulajdonsághoz vagy metódushoz belső hozzáférés-módosító van csatolva, akkor ezek a tagok csak belső program által érhetők el, külső program nem.

C# konstruktor

C# A konstruktorokat az osztálymezők értékeinek inicializálására használják a megfelelő objektumok létrehozásakor. A konstruktor olyan metódus, amelynek ugyanaz a neve, mint az osztályé. Ha egy konstruktor definiálva van egy osztályban, akkor ez biztosítja az első metódust, amelyet egy objektum létrehozásakor hívunk meg. Tegyük fel, ha lenne egy Alkalmazott nevű osztályunk. A konstruktor metódus neve is Employee().

A következő kulcsfontosságú dolgokat kell megjegyezni a konstruktor módszerekkel kapcsolatban

  1. A konstruktor C# alapértelmezett hozzáférés-módosítóját nyilvánossá kell tenni.
  2. A konstruktor metódushoz nem szabad visszatérési típust megadni.

Példa a C# konstruktorra

Lássuk most, hogyan építhetjük be a kódunkba a konstruktorok felhasználóját. Konstruktorok segítségével inicializáljuk a TutorialID és TutorialName mezőket néhány alapértelmezett értékre az objektum létrehozásakor.

Step 1) Az első lépés a Tutorial osztályunk konstruktorjának létrehozása. Ebben a lépésben hozzáadjuk az alábbi kódot a Tutorial.cs fájlhoz.

C# konstruktor

Kód magyarázata: -

  1. Először hozzáadunk egy új metódust, amelynek ugyanaz a neve, mint az osztályé. Mivel ez megegyezik az osztály névvel, a C# konstruktor metódusként kezeli. Tehát most, amikor a hívó metódus létrehoz egy objektumot ebből az osztályból, ez a metódus hívódik meg alapértelmezés szerint.
  2. A Tutorial konstruktorban a TutorialID értékét 0-ra, a TutorialName értékét pedig „Default”-ra állítjuk. Tehát amikor egy objektumot létrehoznak, ezek a mezők mindig ezek az alapértelmezett értékek lesznek.

Most váltsunk át a Program.cs fájlra, és távolítsuk el a SetTutorial metódust hívó sort. Ez azért van, mert csak látni akarjuk, hogyan működik a konstruktor.

C# konstruktor

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

Kód magyarázata: -

  1. Az első lépés egy objektum létrehozása a Tutorial osztály számára. Ez az "új" kulcsszóval történik.
  2. A TutorialName lekéréséhez a Tutorial osztály GetTutorial metódusát használjuk. Ez ezután megjelenik a konzolon a Console.WriteLine metóduson keresztül.

Ha a fenti kódot megfelelően beírta és a program lefut, a következő kimenet jelenik meg.

output:

C# konstruktor

A kimenetből láthatjuk, hogy a konstruktort valóban meghívták, és a TutorialName értéke „Default”-ra van állítva.

Jegyzet: Itt az „alapértelmezett” érték kerül lekérésre a konstruktortól.

Összegzésként

  • A C# Access Modifiers vagy Access Specifiers egy osztálytulajdonság vagy metódus láthatóságának meghatározására szolgál.
  • Ha a Privát hozzáférés módosító egy tulajdonsághoz vagy metódushoz van csatolva, az azt jelenti, hogy ezek a tagok semmilyen külső programból nem érhetők el.
  • Ha egy tulajdonsághoz vagy metódushoz nyilvános hozzáférés módosító van csatolva, az azt jelenti, hogy ezek a tagok bármely külső programból elérhetők.
  • Ha a védett hozzáférés módosító egy tulajdonsághoz vagy metódushoz van csatolva, az azt jelenti, hogy ezek a tagok csak az aktuális osztálytól örökölt osztályok által érhetők el.
  • Ha egy tulajdonsághoz vagy metódushoz belső hozzáférés-módosító van csatolva, akkor ezek a tagok csak belső program által érhetők el, külső program nem.
  • A C# konstruktorokat az osztálymezők értékeinek inicializálására használják a megfelelő objektumok létrehozásakor.