Modificatori de acces (specificatori) în C# cu exemple de programe

⚡ Rezumat inteligent

Modificatorii de acces în C# sunt cuvinte cheie care setează vizibilitatea unei clase, proprietăți sau metode, restricționând ce programe externe le pot accesa. Constructorii inițializează automat valorile câmpurilor de fiecare dată când este creat un obiect al clasei.

  • 🔐 Privat: Modificatorul de acces privat limitează un membru la aceeași clasă, blocând accesul din partea oricărui program extern.
  • 🌐 f) Public: Modificatorul de acces public expune o proprietate sau o metodă oricărui program extern fără restricții.
  • 🛡️ Protejat: Modificatorul de acces protejat partajează membri doar cu clasele moștenite de la clasa curentă.
  • 📦 Intern: Modificatorul de acces intern permite accesul în cadrul aceluiași ansamblu, dar nu dintr-un program extern.
  • 🏗️ Constructor: Un constructor partajează numele clasei, nu acceptă niciun tip de returnare și inițializează câmpurile atunci când este creat un obiect.
  • 🤖 Asistență AI: GitHub Copilot scheldează modificatori și constructori, în timp ce ML.NET mapează proprietățile clasei pentru a modela caracteristici.

Modificatori de acces (specificatori) în C#

Ce este Modificatorul de acces (Specificatorul) în C#?

Modificatori de acces sau Specificatorii de acces în C# sunt cuvintele cheie folosite pentru a defini vizibilitatea unei proprietăți sau metode de clasă. Se utilizează 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 să nu poată 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.

Modificatori de acces 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.

Modificator de acces privat

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

Modificatori de acces public C#

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

  1. Modificatorul de acces implicit C# pentru constructor trebuie să fie făcut public.
  2. 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.

Constructor C#

Code Explicaţie:-

  1. 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.
  2. Î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.

Constructor C#

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 Explicaţie:-

  1. Primul pas este crearea unui obiect pentru clasa Tutorial. Acest lucru se face prin cuvântul cheie „nou”.
  2. 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:

Constructor C#

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.

Întrebări frecvente

Dacă nu este specificat niciun modificator, membrii clasei și structurii au implicit valori private, iar tipurile de nivel superior valori interne, rămânând ascunși până când le lărgiți vizibilitatea.

Protected expune un membru aceleiași clase și oricărei clase derivate, chiar și între ansambluri. Internal îl expune doar tipurilor din același ansamblu.

Clasa „protected internal” permite accesul din aceeași asamblare sau din orice clasă derivată. Clasa „private protected” este mai strictă, permițând doar clase derivate în interiorul aceleiași asamblare.

C# acceptă constructori impliciti, parametrizați, copiați, statici și privați. Aceștia inițializează câmpurile unui obiect, execută configurarea clasei o singură dată sau clonează valorile unui alt obiect.

Un constructor static nu acceptă modificatori sau parametri. Se execută o singură dată, înainte de crearea primului obiect sau de încărcarea membrilor statici, inițializând câmpurile statice.

Da. O clasă poate defini mai mulți constructori cu liste de parametri diferite. Compilatorul îl alege pe cel care corespunde argumentelor transmise către new.

Da. GitHub Copilot sugerează modificatori, constructori și inițializatori de câmp dintr-un nume de clasă sau un comentariu din Visual Studio și VS Code. RevVizualizați fiecare nivel de vizibilitate sugerat.

ML.NET mapează proprietățile publice ale unei clase de date C# pentru a modela caracteristici și etichete. Instrumentele publice de obținere și setare permit citirea acestor valori în timpul antrenamentului.

Rezumați această postare cu: