Operațiuni de supraîncărcare

După cum știți, în C #, tipul de variabilă definește setul de valori pe care îl poate stoca, precum și setul de operații care pot fi efectuate pe această variabilă. De exemplu, peste o valoare a unei variabile de tip int, programul poate efectua adăugarea, scăderea, multiplicarea și împărțirea. Pe de altă parte, utilizarea operatorului plus pentru a adăuga două instanțe ale unei clase implementate de programator nu are sens.







Atunci când o clasă este definită într-un program, un nou tip de date este în esență definit. Apoi, limba C # vă permite să definiți operațiunile corespunzătoare acestui tip nou de date.

Supraîncărcarea operațiunii constă în schimbarea sensului unei operații atunci când este utilizată cu o anumită clasă.

De exemplu, să presupunem că există:

myclass a, bc; ... // a, b, c-instanțe ale clasei myclass

c = a + b; // operație de adăugare supraîncărcată pentru clasa myclass

Operațiile de supraîncărcare sunt de obicei folosite pentru clase care descriu concepte matematice sau fizice, adică clase pentru care doriți să efectuați operațiile corespunzătoare.

[atribute] specifiersoperatorTheoperarea,

operator - cuvântul cheie care definește operația supraîncărcată

Trupul unei acțiuni-acțiune care se realizează atunci când o operație este folosită într-o expresie







Numai operațiile standard pot fi supraîncărcate.

Algoritmul de suprasarcină de funcționare:

Definiți clasa la care va fi alocată această operație.

Pentru operațiile de supraîncărcare, se folosește operatorul de cuvinte cheie.

Când suprascrieți o operație, trebuie să specificați o metodă pe care C # o apelează de fiecare dată când clasa folosește o operație supraîncărcată. Această metodă, la rândul său, efectuează operația corespunzătoare.

Reguli pentru supraîncărcarea operațiunii:

Operațiunea trebuie declarată statică publică

Parametrii din operație trebuie să fie trecuți prin valoare (nu ref, nu ieșire)

Două operațiuni supraîncărcate identice în sala de clasă nu ar trebui să fie

Dacă programul suprasolicite operația pentru o anumită clasă, atunci semnificația acestei operații se modifică numai pentru clasa specificată. Restul programului va continua să utilizeze această operație pentru a-și îndeplini acțiunile standard.

Suprasolicitarea operațiunilor unare

Operațiile unare care pot fi supraîncărcate în C # includ:

adevărat, fals - de obicei supraîncărcat pentru tipurile SQL

publicstatic type_of_value_checker_unerator_operation (un parametru),

unde parametrul este clasa pentru care această operație este supraîncărcată

operatorul public static myclass ++ (myclass x)

public static int operator + (myclass x)

funcționarul public static bool true (myclass x)

Operația supraîncărcată returnează:

unar + și -. valoare de orice tip

++,-- valoarea tipului de clasă

adevărat, fals - valoarea tipului bool

Prefix și postfix ++ și - nu diferă în cazul supraîncărcării.

Un exemplu de supraîncărcare a operațiilor unare pe un exemplu de clasă







Articole similare

Trimiteți-le prietenilor: