【发布时间】:2011-09-29 11:28:15
【问题描述】:
我即将开始使用 C# 进行一些数值分析工作,并且正在考虑使用运算符重载和 Distance、Speed、Acceleration 等类,以及适当定义的运算符重载,确保允许所有自然操作,禁止所有错误操作,以便
speed = distance / time
会按预期行事,但是
acceleration = distance / time
不会编译(或至少抛出异常)。
我不是第一个想要这个的人,所以我想知道是否有人知道可以使用的合适库?
【问题讨论】:
-
这是 F#(因此不是答案),但您可能对 F# 的度量单位感兴趣。 msdn.microsoft.com/en-us/library/dd233243.aspx 和 blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/…。它解决了您的问题,但您必须使用 F#。另请看stackoverflow.com/questions/348853/units-of-measure-in-c-almost
-
我认为您最好为此实施方法,即。
GetSpeed(double distance, double time) { return distance / time; }。你在这里的建议只会让事情变得比他们需要的更复杂。 -
所有这些例子都忽略了速度实际上是一个向量......
-
@Felice。不,这不对。您正在考虑速度。
-
@Ray,你是对的,这是我英语不好造成的错误