Modificatori de acces (specificatori) în C# cu exemple de programe
Ce este Modificatorul de acces (Specificatorul) în C#?
Modificatori de acces sau Specificatorii de acces în C# sunt cuvintele cheie utilizate pentru a defini vizibilitatea proprietății sau metodei unei clase. Este folosit atunci când nu doriți ca alte programe să vadă proprietățile sau metodele unei clase. Modificatorii de acces restricționează accesul, astfel încât alte programe nu pot vedea proprietățile sau metodele unei clase.
Există 6 tipuri de modificatori de acces în C#:
- Privat
- Public
- Protejat
- Intern
- Intern protejat
- Privat protejat
Vom afla despre principalii modificatori de acces în C# cu exemple de programe, așa cum este explicat mai jos.
Modificatori de acces privat în C#
Când modificatorul de acces privat este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri nu pot fi accesați din niciun program extern.
Exemplu de Modificator de acces privat
Să luăm un exemplu și să vedem ce se întâmplă când folosim modificatorul de acces privat.
Să modificăm codul curent din fișierul nostru Tutorial.cs. În metoda SetTutorial, să schimbăm cuvântul cheie public în privat.
Acum să trecem la fișierul Program.cs. Veți observa că există o linie roșie ondulată sub metoda SetTutorial.
Deoarece acum am declarat metoda SetTutorial ca fiind privată în clasa noastră Tutorial, Visual Studio a detectat acest lucru. Acesta a spus utilizatorului, evidențiind-o că acum această metodă nu va funcționa din fișierul Program.cs.
Modificatori de acces public C#
Când modificatorul de acces public este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri pot fi accesați din orice program extern. Am văzut deja acest lucru în exemplele noastre anterioare.
Exemplu de Modificator de acces public
Deoarece ne-am definit metodele ca publice în clasa Tutorial, acestea pot fi accesate din fișierul Program.cs.
Modificatori de acces protejat în C#
Când modificatorul de acces protejat este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri pot fi accesați numai de către clasele moştenite din curent clasă. Acest lucru va fi explicat mai detaliat în clasa Moștenire.
Modificatori de acces intern C#
Când un modificator de acces intern este atașat fie unei proprietăți, fie unei metode, acești membri pot fi accesați numai de un program intern, dar nu de un program extern.
Constructor C#
C# Constructorii sunt folosiți pentru a inițializa valorile câmpurilor de clasă atunci când sunt create obiectele lor corespunzătoare. Un constructor este o metodă care are același nume cu cel al clasei. Dacă un constructor este definit într-o clasă, atunci acesta va furniza prima metodă care este apelată atunci când este creat un obiect. Să presupunem că am avea o clasă numită Angajat. Metoda constructorului va fi numită și Employee().
Următoarele lucruri cheie trebuie remarcate despre metodele constructoarelor
- Modificatorul de acces implicit C# pentru constructor trebuie să fie făcut public.
- Nu ar trebui să existe un tip de returnare pentru metoda constructorului.
Exemplu de constructor C#
Să vedem acum cum putem încorpora utilizatorul de constructori în codul nostru. Vom folosi constructori pentru a inițializa câmpurile TutorialID și TutorialName la unele valori implicite atunci când obiectul este creat.
Pas 1) Primul pas este să creați constructorul pentru clasa noastră Tutorial. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs.
Explicația codului: -
- Adăugăm mai întâi o nouă metodă care are același nume cu cel al clasei. Deoarece este același nume ca și clasa, C# tratează aceasta ca pe o metodă de construcție. Deci acum, ori de câte ori metoda de apelare creează un obiect din această clasă, această metodă va fi apelată implicit.
- În constructorul Tutorial, setăm valoarea TutorialID la 0 și TutorialName la „Default”. Deci, ori de câte ori este creat un obiect, aceste câmpuri vor avea întotdeauna aceste valori implicite.
Acum să trecem la fișierul Program.cs și să eliminăm doar linia, care apelează metoda SetTutorial. Acest lucru se datorează faptului că vrem doar să vedem cum funcționează constructorul.
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();
}
}
}
Explicația codului: -
- Primul pas este crearea unui obiect pentru clasa Tutorial. Acest lucru se face prin cuvântul cheie „nou”.
- Folosim metoda GetTutorial a clasei Tutorial pentru a obține TutorialName. Acesta este apoi afișat pe consolă prin metoda Console.WriteLine.
Dacă codul de mai sus este introdus corect și programul este executat, va fi afișată următoarea ieșire.
ieșire:
Din rezultat, putem vedea că constructorul a fost într-adevăr apelat și că valoarea TutorialName a fost setată la „Default”.
Notă: Aici valoarea „implicit” este preluată de la constructor.
Rezumat
- Modificatorii de acces C# sau specificatorii de acces sunt utilizați pentru a defini vizibilitatea proprietății sau metodei unei clase.
- Când modificatorul de acces privat este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri nu pot fi accesați din niciun program extern.
- Când modificatorul de acces public este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri pot fi accesați din orice program extern.
- Când modificatorul de acces protejat este atașat fie unei proprietăți, fie unei metode, înseamnă că acești membri pot fi accesați numai de clasele moștenite din clasa curentă.
- Când un modificator de acces intern este atașat fie unei proprietăți, fie unei metode, acești membri pot fi accesați numai de un program intern, dar nu de un program extern.
- Constructorii C# sunt folosiți pentru a inițializa valorile câmpurilor de clasă atunci când sunt create obiectele lor corespunzătoare.






