2010-04-15 9 views
18

è possibile vincolo un metodo in modo che esso riceve solo int, double, long o altri tipi numerici che ha le operazioni numeriche (come +, -, *, /) definito?Generics che limita i tipi di Int, doppio, lungo

+2

Probabilmente si potrebbe creare un'interfaccia con quelle operazioni e avvolgere i tipi di dati numerici in qualcosa che implementa quell'interfaccia. Probabilmente non sarà il più efficiente e userà un sacco di cose personalizzate, ma risolverà il problema se questa è la cosa più importante. –

risposta

16

Al momento non è possibile.

Inoltre, vedere this question per una possibile soluzione

+1

+1: purtroppo, purtroppo. – Richard

+4

Il fatto che non ci sia un tipo di base comune per i tipi numerici è davvero sfortunato. –

+2

Preferirei la possibilità di specificare i vincoli del tipo di operatore – rpetrich

9

No, purtroppo non c'è tale limitazione possibile. Il più vicino possibile è usare struct, IConvertible come vincolo di tipo generico.

Si consiglia di leggere this question però.

+2

Sono sorpreso dal motivo per cui questo Lucero non è stato votato. L'utilizzo delle strutture è il più vicino e può limitare il tipo di parametro ai tipi di valore – AlwaysAProgrammer

Problemi correlati