比方说,我有一个函数旋转(浮动角度)。当我调用这个函数时,我可能不会记得这个函数是以角度还是弧度表示的。出于这个原因,我称之为这些RotateDegrees(浮点角度)函数。这更好,尤其是,如果我打电话给变量degAngle或radAngle。这样,您可以立即看到代码是否正确,而无需查看其他地方。为不同的单位制作课程?
但是可能有更好的办法!
为什么我不为每个单位制作不同的课程?像
public class Degree
{
public float value;
public Degree (float value)
{
this.value = value;
}
}
和小时,公里,摩尔,光年等相同。
这样就没有歧义,我只需为每个函数做一堆重载,或为每个类定义转换运算符。
但我从来没有见过这样的代码。这在实践中没有用吗?另外,我正在编写的代码对性能至关重要,会有什么性能损失?
为什么不使用一种度量单位来衡量一切,这样你就不必担心转换(直到与用户交互),并且将由于转换(舍入,浮点限制)而导致的不准确性最小化? – Matthew 2013-02-21 03:12:23
您应该考虑F#提供的有关度量单位的内容(http://blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing- units.aspx)。我知道它是一种不同的语言,但它的语法相似。作为一个c#dev,我发现F#是一个小的学习曲线。 – 2013-02-21 03:16:40
来自MSDN的更多信息:http://msdn.microsoft.com/en-us/library/dd233243.aspx – 2013-02-21 03:17:41