我有一个简单的 System.Drawing.Point (int, int) 类。
public class Foo
{
public Point Point;
}
我需要这个类实现一个带有 PointF (float, float) 的接口:
public interface IPointable { PointF Point { get; } }
当然,当我尝试时Foo : IPointable
,我有
Error 7 'Foo' does not implement interface member 'Pointable.Point'
所以,我改变了我的 Foo 类
public class Foo
{
public Point IntPoint;
public PointF Point { get { return IntPoint; } }
}
哦,我编译。那是因为 Point 隐式转换为 PointF :
public static implicit operator PointF(Point p);
但是我觉得很脏。
Foo
有一个坐标Point
,int
这对我的很多代码都很重要。但有时,当Foo
只需要是时IPointable
,他的身份int
并不那么重要。
有没有办法不向我的班级添加愚蠢的属性,并且仍然Foo
可以使用该IPointable
界面?