我正在使用Point对象绘制一些图形,我想设置它 它支持双精度作为参数。我正在开发Visual C#,WindowsConsoleApplication
谢谢。
答案 0 :(得分:6)
您可以使用PointF
。所有System.Drawing
都支持浮点运算。为什么不使用那些?否则,如果您真的想使用double
并将它们传递给整数绘图函数,则需要创建自己的结构。有这样的效果:
struct MyPoint {
public double X{get;set;}
public double Y{get;set;}
public MyPoint(double x, double y) {
X = x;
Y = y;
}
public implicit operator Point() {
return new Point(X, Y);
}
}
这是一个非常截断的实现,如果您查看Point
的源元数据(通过转到定义),您将看到需要实现的所有覆盖和运算符。
此外,作为一个兴趣点,您可能会注意到Point
可以隐式转换为PointF
,但不是相反。由于潜在的精度损失,不支持此功能。如果我是你,我会重新考虑设计,因为它似乎违反了API设计师的最佳使用实践。
答案 1 :(得分:1)
答案 2 :(得分:0)
不,不可能使点对象超载。
Point基本上是结构,因此它不支持重载。
最好创建自己的类与点相同。
希望这会有所帮助!