几乎每次我在图形应用程序上工作时,都发现我必须应用一种算法,这是我在过去编写的或在网上找到的,它在概念上完全符合我所需,但与数据不同结构。例如,我可以有时将“点”表示为Vector2
,或者表示为PointF
,Point
等。在不同的项目中重用这样的代码有时会强制添加不需要的引用,并且始终要从数据类型中进行一些无聊的转换,所以我们重新为新数据结构重写算法。所以问题是:在算法中抽象Point访问器是否存在(智能)方法?我想提供类似的元组:具有多重点结构的算法
Func<TCoord,TPoint> Xaccessor
Func<TCoord,TPoint> Yaccessor
...
Func<TCoord,TPoint> ...accessor
但我不得不设置的坐标值,这样做,所以我没有一个既不我想用我的算法实现这样一个烂摊子结束。如何简洁地指定点坐标访问器?另外我们也必须考虑到,有时候这个点可以用float []表示。我猜想可以通过使用表达式树来完成,但是我对此不敏感,所以任何建议都会真正感谢! 非常感谢
编辑实现一个接口是不是一种选择,因为点班是不是我写的,和反思是不是性能原因的选项。
为你的烦恼+1,但我相信,没有好的解决方案 –
@Konrad Rudolph,在这种情况下不会很高兴在系统中拥有这些结构,因为我们有浮动等等?即一个Point2D/3D矢量和矩阵作为始终可用的类... –