Geo*_*ler 2 c# double pointers overloading
我正在使用Point对象绘制一些图形,我想设置它以便它支持双精度作为其参数.我正在开发Visual C#,WindowsConsoleApplication
谢谢.
你可以使用PointF.全部System.Drawing支持浮点运算.为什么不使用那些?否则,如果您真的想使用doubles并将它们传递给整数绘图函数,则需要创建自己的结构.这样的效果:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常截断的实现,如果您查看Point(通过定义)的源元数据,您将看到需要实现的所有覆盖和运算符.
此外,作为一个兴趣点,您可能会注意到Point可以隐式转换为PointF,但不是相反.由于潜在的精度损失,不支持此功能.如果我是你,我会重新考虑设计,因为它似乎违背了API设计师的最佳使用方法.