Clase și metode comune (ghid de programare c #), documente Microsoft

Puteți împărți definiția unei clase sau a unei structuri. interfață sau metodă între două sau mai multe fișiere sursă. Fiecare fișier sursă conține o parte a definiției unei clase sau a unei metode și, la momentul compilării, toate părțile sunt combinate.







Clase comune

Există mai multe situații în care este de dorit să se separe definiția unei clase.

Când lucrați la proiecte mari, distribuția claselor între diferite fișiere permite mai multor programatori să lucreze simultan cu el.

Când lucrați cu o sursă generată automat, codul poate fi adăugat la clasă fără a re-crea fișierul sursă. Visual Studio folosește această abordare atunci când creează Windows Forms, codul de serviciu al serviciului web și așa mai departe. Puteți crea codul care utilizează aceste clase, fără a fi nevoie să modificați fișierul creat în Visual Studio.

Pentru a separa definiția unei clase, utilizați modificatorul de cuvinte cheie parțial. după cum urmează:

Cuvântul cheie parțial indică faptul că alte părți ale clasei, structurii sau interfeței pot fi definite în spațiul de nume. Toate părțile trebuie să utilizeze cuvântul cheie parțial. Pentru a forma tipul final, toate piesele trebuie să fie disponibile la timpul de compilare. Toate părțile trebuie să aibă aceleași modificatoare de acces, de exemplu publice. privat, și așa mai departe.

Dacă oricare dintre părți este declarată abstractă, atunci întregul tip va fi considerat abstract. Dacă una dintre părți este declarată sigilată, atunci întregul tip va fi considerat sigilat. Dacă oricare dintre părți declară un tip de bază, atunci întregul tip va moșteni această clasă.

remarcă






Următorul exemplu arată că tipurile imbricate pot fi partajate, chiar dacă tipul în care sunt imbricate nu este partajat.

Următoarele elemente sunt combinate din toate definițiile unui tip partajat:

Următorul exemplu arată că puteți dezvolta, de asemenea, structuri și interfețe partajate.

Metode partajate

O clasă sau o structură partajată poate conține o metodă partajată. O parte a clasei conține semnătura metodei. În aceeași sau în altă parte, puteți defini o implementare suplimentară. Dacă implementarea nu este furnizată, metoda și toate apelurile de metodă sunt șterse la momentul compilării.

Metodele comune permit unui dezvoltator al unei părți a unei clase să definească o metodă similară unui eveniment. Dezvoltatorul celeilalte părți a clasei poate decide dacă va implementa această metodă sau nu. Dacă metoda nu este implementată, compilatorul elimină semnătura metodei și toate apelurile la această metodă. Apelurile metodice, inclusiv orice rezultate care ar putea apărea din evaluarea argumentelor în apeluri, nu au niciun efect în timpul rulării. Astfel, orice cod dintr-o clasă partajată poate utiliza în mod liber metoda partajată, chiar dacă implementarea nu este furnizată. În timpul compilării și executării programului, nu vor exista erori dacă metoda este apelată, dar nu este implementată.

Metodele comune sunt utile în special pentru personalizarea codului generat automat. Acestea vă permit să rezerve numele și semnătura unei metode de a automat cod generat poate apela metoda, și un dezvoltator de el însuși ar putea decide să pună în aplicare această metodă sau nu. Ca și în cazul claselor comune, metodele comune vă permit să lucrați împreună codul și codul creat automat de către o persoană, fără costuri suplimentare în timpul rulării.

Metodele comune pot avea parametrii ref. dar nu pot avea parametri.

Metodele comune au implicit un modifier privat și, prin urmare, nu pot avea un modifiant virtual.

Metodele comune nu pot avea un modificator extern. Din moment ce prezența organismului determină dacă se realizează definiția sau implementarea lor.

Metodele comune pot avea modificatori statici și nesigur.

Puteți utiliza un delegat ca metodă partajată definită și implementată, dar nu poate fi utilizată ca o metodă comună care este definită doar.

C # Specificarea limbii

Pentru mai multe informații, consultați specificația C #. Specificația de limbă este o sursă prescriptivă de informații despre sintaxa și utilizarea limbajului C #.







Trimiteți-le prietenilor: