overload degli operatori

di Marco Leoncini, in c#,

visto che stasera la mia ragazza mi ha rubato la console, eccomi a scrivere qualcosa sul blog ad un ora abbastanza insolita.
l'ultimo l'inguaggio di programmazione che ho usato prima di C# è stato il turbo pascal :) roba da matti.

sono stato subito conquistato dalla sintassi pulita e soprattutto dall'overload dei metodi (nella prossima verisione disponibile anche per VB), un pò scettico mi aveva lasciato l'overload degli operatori, perche in prima battuta non ne capivo l'utilità :).

per fare un esemio di overload di operatori basti pensare al significato di + nel tipo stringa, il compilatore penserà poi a generare il codice IL , praticamente viene prodotto un metodo.

poi ho iniziato ad apprezzare anche l'overload degli operatori un breve esempio:

public class carrello

{

public int cx;

public int cy;

public carrello(int x, int y)

{

cx = x;

cy = y;

}

public static carrello operator +(carrello a, carrello b)

{

int sx = a.cx + b.cx;

int sy = a.cy + b.cy;

return new carrello(sx, sy);

 

}

}

la classe è semplicissima espone due interi, la cosa più interessante è overload dell'operatore +,

public static carrello operator +(carrello a, carrello b)

l'overload si dichiara con la parola operator ed in genere il tipo restituito è dello stesso tipo della classe, questo non è obbligatorio ma permette di costruire catene, ovvero:
carrello1 + carrello2 + carrello3, questo non sarebbe possibile restituendo un tipo differente,inoltre l'verload non deve andare a modificare i valore degli argomenti.

ciao marco

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese