我有一个简单的 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界面?