単純な 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
withint
座標があり、これは多くのコードにとって重要です。しかし、時々、あるFoo
必要があるだけの場合IPointable
、彼の-int
らしさはそれほど重要ではありません.
ばかげたプロパティをクラスに追加せずに、インターフェイスFoo
を使用できる方法はありますか?IPointable