Buongiorno a tutti, innanzitutto mi scuso se uso termini non appropriati o se sbaglio qualche passaggio.
Stavo approfondendo un pò le classi generiche quando ho constatato che non posso compiere operazioni(somma,moltiplicazione) tra operandi di tipo generici. Ovviamente questo è dovuto dal fatto che il compilatore non sa a priori se quella operazione è possibile oppure no.
Quindi mi chiedevo se esistono delle soluzioni, ho cercato in rete ed ho trovato solo alcuni esempi che vi allego di seguito.
Primo caso in cui ricevo l'errore:
T metodo<T>(T a,T b)
{
return a *b;
}
Secondo caso che mi evita di ricevere l'errore:
T metodo<T>(dynamic a,dynamic b)
{
return a *b;
}
Oppure:
T metodo<T>(T a,T b)
{
dynamic aa=a, bb=b;
return aa *ba;
}
Le mie domande sono queste:
1)Ha senso usare i Generic quando si devono compiere queste operazioni?
2)Se si, i due esempi mostrati sono giusti o fanno perdere l'essenza dei generic?
3)Sempre se gli esempi sono corretti, quali dei due mi consigliate?
4)Ho visto che si può utilizzare anche la clausola where, ma non ne ho trovata una che mi permettesse di compiere operazioni. Sono io che sbaglio?
Grazie mille a ttui