在某些类型的代码(例如模拟/游戏/优化)中,许多物理量/属性被存储、操作和暴露给对象(位置、速度、距离、面积、体积、时间、时差)。在这些类型的代码中,所有这些量通常由浮点数表示,即在 c# 中是双精度数。
这允许您将时间添加到距离、面积添加到体积、时间添加到时间以及位置添加到位置。
但你永远不想这样做。您只想将时间差添加到时间,添加到其他距离或位置的距离,并将区域与距离相乘。尽管如此,还是很容易出错,尤其是在处理其他人的代码时。
有很多选择可以减轻这种危险。您可以定义表示各种物理量的自定义类,然后以编程方式禁止某些类型的交互。或者您遵守严格的命名约定(例如 delay_timedifference)。在什么情况下(如果有的话),这两个选项中哪一个是最好的?如何实施第一个选项?如何为第二个选项命名?