2010-04-15 19 views
18

¿Es posible a la restricción un método para que reciba solamente int, double, long u otros tipos numéricos que tiene las operaciones numéricas habituales (como +, -, *, /) definido?genéricos que restringe los tipos a int, double, long

+2

Probablemente pueda crear una interfaz con esas operaciones y ajustar los tipos de datos numéricos en algo que implemente esa interfaz. Probablemente no sea el más eficiente, y usará un montón de cosas personalizadas, pero resolverá ese problema si eso es lo más importante. –

Respuesta

16

Esto no es posible actualmente.

También, ver this question para una posible solución

+1

+1: Correcto, desafortunadamente. – Richard

+4

El hecho de que no haya un tipo de base común para los tipos numéricos es realmente desafortunado. –

+2

Preferiría la capacidad de especificar restricciones de tipo de operador – rpetrich

9

No, desafortunadamente no existe tal restricción posible. Lo más cerca que puede obtener es usar struct, IConvertible como restricción de tipo genérico.

Es posible que desee leer this question though.

+2

Estoy sorprendido de por qué esto de Lucero no fue votado. El uso de estructuras es lo más cercano que uno puede restringir el tipo de parámetro para que sea de tipos de valor – AlwaysAProgrammer

Cuestiones relacionadas