Reînnoirea operatorilor în c # - de ce este necesar și ce mănâncă?

La elaborarea aplicațiilor, clasele de tip sunt adesea scrise: test de clasă
public int;
public int b;
>

De ce clase, nu structuri? - adesea în astfel de prototipuri, există încă unele metode prezente, dar nu sunt despre ele, deci în exemplul de cod nu sunt.

Acum, hai să mergem la sarcină: să spun că vreau să-mi proiectez codul frumos și să scriu ceva de genul: class MainClass
static public void principal # 40; șir # 91; # 93; args # 41;
test tA = test nou # 40; 1, 2 # 41 ;;
test tB = test nou # 1, 1 # 41 ;;

testul tC = tA + tB;
>> și a obține tC cu parametrul a = 2 și b = 3, întreaga sare este că compilatorul JIT nu are nicio idee ce să facă cu clasa ta. Pentru ca codul de mai sus să funcționeze, trebuie să reporniți operatorul unic de iterație. Pentru a face acest lucru, adăugați funcția corespunzătoare la clasa noastră și obțineți următoarea formă a clasei: test de clasă
public int;
public int b;

test public ##; int _a, int _b # 41;
a = _a;
b = _b;
>

operatorul de testare statică publică + Testul t1, testul t2 # 41;
returnați un nou test ##; t1.a + t1.a, t1.b + t2.b # 41 ;;
>

După aceea, codul dat în funcția principală va fi executat fără probleme.

Deci, încă o dată, codul complet: test de clasă
public int;
public int b;

test public ##; int _a, int _b # 41;
a = _a;
b = _b;
>

operatorul de testare statică publică + Testul t1, testul t2 # 41;
returnați un nou test ##; t1.a + t1.a, t1.b + t2.b # 41 ;;
>

clasa MainClass
static public void principal # 40; șir # 91; # 93; args # 41;


test tA = test nou # 40; 1, 2 # 41 ;;
test tB = test nou # 1, 1 # 41 ;;

testul tC = tA + tB;

Console.WriteLine ",", TC.a, tC.b # 41 ;; //

Cu sinceritate, Sugay Vladimir.