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.
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.
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
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
- A konstruktor C# alapértelmezett hozzáférés-módosítóját nyilvánossá kell tenni.
- 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.
Kód magyarázata: -
- 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.
- 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.
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: -
- 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.
- 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:
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.