比方說,我有一個函數旋轉(浮動角度)。當我調用這個函數時,我可能不會記得這個函數是以角度還是弧度表示的。出於這個原因,我稱之爲這些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