可能重复问题:
仅适用于整数的C#泛型约束
您好!
我正在尝试在C#中设置笛卡尔坐标系,但我不想将坐标值限制为任何一种数字类型。有时它们可以是整数,而其他时候它们可以是有理数,具体取决于上下文。
这让我想到了“泛型类”,但我对如何限制类型同时包含整数和浮点数感到困惑。我似乎找不到涵盖任何实数概念的类......
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、strings、objects等?或者更糟糕的是,我是否需要为每种类型的数字都创建一个类,并且每个类都具有相同的内部数学公式?如有帮助将不胜感激。谢谢!