我有一個簡單的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