在我们的应用软件中,涉及到物理化学计算时,只有 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/