Duplicar posible:
C# generic constraint for only integers¿Existe una restricción genérica de C# para los tipos de "números reales"?
saluda!
Estoy intentando configurar un sistema de coordenadas cartesianas en C#, pero no quiero restringirme a ningún tipo numérico para mis valores de coordenadas. A veces pueden ser enteros, y otras veces pueden ser números racionales, según el contexto.
Esto me grita "clase genérica", pero estoy perplejo en cuanto a cómo restringir el tipo a integrales y puntos flotantes. Me parece que no puede encontrar una clase que cubre cualquier concepto de los números reales ...
public class Point<T> where T : [SomeClassThatIncludesBothIntsandFloats?] {
T myX, myY;
public Point(T x, T y) {
myX = x;
myY = y;
}
}
Point<int> pInt = new Point<int>(5, -10);
Point<float> pFloat = new Point<float>(3.14159, -0.2357);
Si quiero que este nivel de libertad, estoy eligiendo a un "typeof (T)" pesadilla cuando se trata de cálculos dentro de mis clases, eliminando bools, cadenas, objetos, etc. O peor, ¿elijo hacer una clase para cada tipo de número con el que quiero trabajar, cada uno con las mismas fórmulas matemáticas internas?
Cualquier ayuda sería apreciada. ¡Gracias!
Esta es una característica solicitada con bastante frecuencia. Lo consideramos como una posibilidad de una futura publicación hipotética del compilador/tiempo de ejecución, pero no ocupa un lugar destacado en la lista de prioridades, por lo que no interpretaría esto como una promesa. Recuerde, tenemos CIENTOS de posibles características y cualquier versión dada solo recibe un puñado de ellas. Sin embargo, ciertamente está en nuestro radar. –
Eso es bueno saber, Eric. Soy muy nuevo en C#, pero tengo raíces en Java, así que es como saltar dimensiones ... similar, pero lo suficientemente diferente como para hacerte ir "¿eh?" de vez en cuando. ;) – Syndog
Para todos los demás, muchas gracias por todas sus respuestas. Ustedes han terminado esto! No es de extrañar que cada vez que Google una pregunta C#, stackoverflow.com ocupa un lugar tan destacado en los resultados. – Syndog