私はグラフィカルアプリケーションを扱うたびに、過去に書いた、またはネット上に見つかったアルゴリズムを、概念的には完璧に収まるが、データとは違うアルゴリズムを適用する必要があることがわかった構造。たとえば、Vector2
、PointF
、Point
などと表現されることがあります。このようなコードを別のプロジェクトで再利用すると、時には望ましくない参照を追加することがあり、常に退屈な変換をデータ型から行うため、新しいデータ構造のためにalgoを書き換えます。ですから、疑問:Pointアクセサを抽象化する(スマート)方法はありますか?私はのタプルのようなものを提供することだと思う:マルチポイント構造のアルゴリズム
Func<TCoord,TPoint> Xaccessor
Func<TCoord,TPoint> Yaccessor
...
Func<TCoord,TPoint> ...accessor
を私は座標値を設定するために同じことをしなければならないので、私は誰どちらは私が私のアルゴリズムの実装を使用したくない、そのような混乱で終わります。ポイント座標アクセサをどのくらい簡潔に指定しますか?また、フロート[]によってポイントが表現されることもあることを考慮しなければなりません。私は表現木を使って何かを行うことができると思うが、私はそれに敏感ではないので、どんなアドバイスも本当に感謝するだろう!ポイントのクラスは、私が書いていないので おかげインタフェースを実装する多く
EDITは、オプションではありません、そして反射は、パフォーマンス上の理由のためのオプションではありません。
+1あなたの悩みは+1ですが、私はかなり確信しています良い解決策。 –
@Konrad Rudolph、このような場合、浮動小数点型のようにSystem内にこれらの構造体を持たせるのはうれしくないでしょうか?つまり、Point2d/3dベクトルと行列は常に利用可能なクラスとして... –