in C++, è possibile scrivere codice come questo:Perchè non si richiede l'overloading degli operatori in farmaci generici
template<class T>
T Add(T lhs, T rhs)
{
return lhs + rhs;
}
Ma, non si può fare qualcosa di simile in C#:
public static T Add<T>(T x, T y) where T : operator+
{
return x + y;
}
C'è qualche motivo per cui? So che potrebbe essere realizzato attraverso la riflessione (generico Add
con oggetti e quindi eseguire il controllo di tipo su tutto), ma questo è inefficiente e non scala bene. Quindi, di nuovo, perché?
Questo è un duplicato di http://stackoverflow.com/questions/756954/arithmetic-operator-overloading-for-a-generic-class-in-c-sharp – neontapir
@neontapir La risposta accettata utilizza la riflessione. Ho detto che so che si può fare in questo modo e preferirei non farlo. –
Penso che nel secondo paragrafo intendi che NON puoi farlo in C#, cioè la domanda è "perché non c'è un vincolo di tipo di sovraccarico dell'operatore?" (la risposta a cui non so, btw). –