在我們的應用軟件中,涉及到物理化學計算時,只有 Frink 、F#、Modelica 少數語言變量是自帶單位的,大部分語言變量僅包含數值,單位轉換需要在變量進行公式計算之前完成,計算后再把結果單位轉換為輸出單位,單位轉換主要通過若干常數實現。這帶來了兩個問題:
大量常數降低代碼可讀性和維護性;
計算精度難以保障。
UnitsNet 用具有單位的變量替代double,支持單位的自動轉換,并(部分)支持不同單位的乘除計算。使用UnitsNet 寫公式計算代碼,可以避免直接的單位轉換,使程序的調用者可以使用任意單位作為輸入。在.NET IoT 將 UnitsNet 用于任何傳感器在綁定中公開的任何單元。在文檔里有明確的設備 API 的約定:https://github.com/dotnet/iot/blob/main/Documentation/Devices-conventions.md
相關參考文章:
理化計算程序必備:CoolProp+UnitsNet:https://blog.csdn.net/xhydongda/article/details/120663619
深入研究 .NET NANOFRAMEWORK 的一年:https://www.nanoframework.net/laurent-ellerbach-a-year-deeply-in-net-nanoframework/