Возможный дубликат:
Общее ограничение С# для целых чисел
Поздравил!
Я пытаюсь настроить декартову систему координат в С#, но я не хочу ограничивать себя каким-либо одним числовым типом для моих значений координат. Иногда они могут быть целыми числами, а в других случаях они могут быть рациональными числами, в зависимости от контекста.
Это кричит "общий класс" для меня, но я в тупике о том, как сжимать тип как для интегралов, так и для плавающих точек. Я не могу найти класс, который охватывает любое понятие реальных чисел...
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);
Если я хочу этот уровень свободы, я выбираю кошмар типа "typeof (T)", когда дело доходит до вычислений внутри моих классов, отсеивая bools, строки, объекты и т.д.? Или, что еще хуже, я выбираю сделать класс для каждого типа числа, с которым хочу работать, каждый с теми же внутренними математическими формулами?
Любая помощь будет оценена по достоинству. Спасибо!