我有一个简单的System.Drawing.Point(int,int)类。如何在隐式可转换类型之间进行接口?
public class Foo
{
public Point Point;
}
我需要这个类实现一个接口用的PointF(浮动,浮动):
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; } }
}
OUHAH,我编译。这是因为Point有一个隐式转换为PointF:
public static implicit operator PointF(Point p);
但是我觉得很脏。
Foo
有一个Point
与int
坐标,这对我的很多代码很重要。但有时候,Foo
只需要是IPointable
,他的int
-并不重要。
有没有办法不给我的班级增加一个愚蠢的属性,而且Foo
仍然可以使用IPointable
接口?
您可以添加从“Foo”到“IPointable”的隐式转换,这将避免财产,但不会让你感觉干净。一个更好的方法是让自己明白,隐式通常更清晰。 – Jodrell 2012-08-13 09:18:04
出于好奇,OUHAH是什么意思? – 2012-08-13 09:37:28
尝试翻译海军陆战队在海军陆战队快乐时说的话。 – 2012-08-13 09:41:41