Juurdepääs C#-i modifikaatoritele (spetsifikaatoritele) programminäidetega

⚡ Nutikas kokkuvõte

C# juurdepääsumodifikaatorid on märksõnad, mis määravad klassi, atribuudi või meetodi nähtavuse, piirates väliste programmide juurdepääsu neile. Konstruktorid initsialiseerivad väljaväärtused automaatselt iga kord, kui klassi objekt luuakse.

  • 🔐 Private: Privaatse juurdepääsu modifikaator piirab liikme sama klassiga, blokeerides juurdepääsu mis tahes välistest programmidest.
  • 🌐 Avalik: Avaliku juurdepääsu modifikaator avaldab atribuudi või meetodi mis tahes välisele programmile ilma piiranguteta.
  • 🛡️ Kaitstud: Kaitstud juurdepääsu modifikaator jagab liikmeid ainult klassidega, mis on päritud praegusest klassist.
  • 📦 Sisemine: Sisemise juurdepääsu modifikaator lubab juurdepääsu sama assembleri piires, kuid mitte välisest programmist.
  • 🏗️ Ehitaja: Konstruktor jagab klassi nime, ei võta tagastustüüpi ja initsialiseerib väljad objekti loomisel.
  • 🤖 AI abi: GitHub Copilot toetab modifikaatoreid ja konstruktoreid, samas kui ML.NET seob klassi omadused mudeli omadustega.

Juurdepääsu modifikaatorid (spetsifikatsioonid) C#-s

Mis on juurdepääsu modifikaator (täpsustaja) C#-s?

Juurdepääsu modifikaatorid C# juurdepääsuspetsifikatsioonid ehk juurdepääsuspetsifikatsioonid on märksõnad, mida kasutatakse klassi atribuudi või meetodi nähtavuse määratlemiseks. Neid kasutatakse siis, kui te ei soovi, et teised programmid näeksid klassi atribuute või meetodeid. Juurdepääsu modifikaatorid piiravad juurdepääsu nii, et teised programmid ei näeks klassi atribuute ega meetodeid.

C#-s on 6 tüüpi juurdepääsu modifikaatoreid:

  • Era-
  • avalik
  • Kaitstud
  • sisemine
  • Kaitstud sisemine
  • Privaatne Kaitstud

Allpool selgitatud programminäidetega õpime tundma C# peamisi juurdepääsumuutujaid.

Privaatjuurdepääsu modifikaatorid C#-s

Kui privaatjuurdepääsu modifikaator on lisatud atribuudile või meetodile, tähendab see, et nendele liikmetele ei pääse juurde ühestki välisest programmist.

Privaatjuurdepääsu modifikaatori näide

Võtame näite ja vaatame, mis juhtub, kui kasutame privaatjuurdepääsu modifikaatorit.

Muutkem praegust koodi meie failis Tutorial.cs. SetTutorial meetodis muudame avaliku märksõna privaatseks.

Privaatjuurdepääsu modifikaatorid

Nüüd läheme üle meie failile Program.cs. Märkate, et meetodi SetTutorial all on punane kõverjooneline joon.

Kuna oleme nüüd oma Tutorial klassis meetodi SetTutorial privaatseks kuulutanud, on Visual Studio selle tuvastanud. Ta teatas kasutajale, tõstes selle esile, et nüüd see meetod failis Program.cs ei tööta.

Privaatjuurdepääsu muutja

C# avaliku juurdepääsu modifikaatorid

Kui atribuudile või meetodile on lisatud avaliku juurdepääsu modifikaator, tähendab see, et nendele liikmetele pääseb juurde mis tahes välisest programmist. Oleme seda juba oma varasemates näidetes näinud.

Avaliku juurdepääsu muutja näide

C# avaliku juurdepääsu modifikaatorid

Kuna oleme oma meetodid Tutorial klassis määratlenud avalikuna, pääseb neile juurde failist Program.cs.

Kaitstud juurdepääsu modifikaatorid C#-s

Kui atribuudile või meetodile on lisatud kaitstud juurdepääsu modifikaator, tähendab see, et neile liikmetele pääseb juurde ainult klassid päritud voolust klass. Seda selgitatakse lähemalt Pärandi klassis.

C# sisepääsu modifikaatorid

Kui atribuudile või meetodile on lisatud sisemine juurdepääsu modifikaator, pääseb neile liikmetele juurde ainult sisemine programm, kuid mitte väline programm.

C# konstruktor

C# Konstruktoreid kasutatakse vastavate objektide loomisel klassiväljade väärtuste lähtestamiseks. Konstruktor on meetod, millel on klassi omaga sama nimi. Kui klassis on defineeritud konstruktor, pakub see esimese meetodi, mida objekti loomisel kutsutakse. Oletame, et meil oleks klass nimega Töötaja. Konstruktormeetodi nimi oleks ka töötaja().

Konstruktormeetodite puhul tuleb tähele panna järgmisi põhiasju

  1. Konstruktori C# vaikimisi juurdepääsumuutja tuleb muuta avalikuks.
  2. Konstruktormeetodil ei tohiks olla tagastustüüpi.

C# konstruktori näide

Vaatame nüüd, kuidas saame konstruktorite kasutajat oma koodi kaasata. Objekti loomisel kasutame väljade TutorialID ja TutorialName mõne vaikeväärtuse lähtestamiseks konstruktoreid.

Step 1) Esimene samm on meie Tutorial klassi konstruktori loomine. Selles etapis lisame faili Tutorial.cs alloleva koodi.

C# konstruktor

Code Selgitus:-

  1. Esmalt lisame uue meetodi, millel on klassi omaga sama nimi. Kuna see on klassiga sama nimi, käsitleb C# seda konstruktorimeetodina. Nii et nüüd, kui kutsumismeetod loob selle klassi objekti, kutsutakse seda meetodit vaikimisi.
  2. Seame Tutorial konstruktoris TutorialID väärtuseks 0 ja TutorialName väärtuseks “Vaikimisi”. Nii et alati, kui objekt luuakse, on neil väljadel alati need vaikeväärtused.

Nüüd läheme üle meie failile Program.cs ja eemaldame lihtsalt SetTutoriali meetodi kutsuva rea. Seda seetõttu, et tahame lihtsalt näha, kuidas konstruktor töötab.

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

Code Selgitus:-

  1. Esimene samm on luua objekt klassi Tutorial jaoks. Seda tehakse märksõna "uus" kaudu.
  2. Kasutame TutorialName hankimiseks klassi Tutorial meetodit GetTutorial. Seejärel kuvatakse see konsoolile meetodi Console.WriteLine kaudu.

Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatud, kuvatakse järgmine väljund.

Väljund:

C# konstruktor

Väljundist näeme, et konstruktorit tõepoolest kutsuti ja õpetuse TutorialName väärtuseks määrati “Vaikimisi”.

Märge: Siin tuuakse konstruktorilt väärtus “vaikeväärtus”.

KKK

Kui modifikaatorit pole määratud, on klassi ja struktuuri liikmete vaikesäteteks privaatne ja tipptasemel tüübid sisemine, jäädes varjatuks seni, kuni nende nähtavust laiendate.

Protected (kaitstud) avab liikme samale klassile ja kõigile tuletatud klassidele, isegi erinevate assemblerite vahel. Internal (internal) avab selle ainult sama assembleri tüüpidele.

Kaitstud sisemine lubab juurdepääsu samast assemblerist või mis tahes tuletatud klassist. Privaatne kaitstud on rangem, lubades ainult sama assembleri sees olevaid tuletatud klasse.

C# toetab vaikimisi, parameetritega, kopeerimis-, staatilisi ja privaatseid konstruktoreid. Need initsialiseerivad objekti välju, käivitavad klassi seadistuse üks kord või kloonivad teise objekti väärtusi.

Staatiline konstruktor ei võta vastu modifikaatoreid ega parameetreid. See käivitub üks kord, enne esimese objekti loomist või staatiliste liikmete laadimist, initsialiseerides staatilisi välju.

Jah. Klass saab defineerida mitu konstruktorit erinevate parameetrite loenditega. Kompilaator valib selle, mis vastab new'ile edastatud argumentidele.

Jah. GitHub Copilot soovitab Visual Studios klassi nime või kommentaari põhjal modifikaatoreid, konstruktoreid ja väljainitsialiseerijaid. VS Code. RevVaadake iga soovitatud nähtavuse taset.

ML.NET seob C# andmeklassi avalikud omadused modelleerimisfunktsioonide ja siltidega. Avalikud getterid ja setterid võimaldavad tal neid väärtusi treeningu ajal lugeda.

Võta see postitus kokku järgmiselt: