2

我希望能够做这样的事情

var m1 = new UnitOfMeasureQuantityPair(123.00, UnitOfMeasure.Pounds);
var m2 = new UnitOfMeasureQuantityPair(123.00, UnitOfMeasure.Liters);

m1.ToKilograms();
m2.ToPounds(new Density(7.0, DensityType.PoundsPerGallon);

如果还没有这样的东西,有人有兴趣把它作为一个操作系统项目来做吗?

4

6 回答 6

4

查看代码项目中的测量单位转换库

于 2008-09-10T13:37:53.443 回答
2

我们实际上在我工作的地方建了一个内部。不幸的是,它不向公众开放。

这实际上是一个很棒的项目,而且做起来并不难。如果您打算自己做某事,我建议您阅读有关QuantityDimensionUnit基本单位)的内容。

这些帮助我们清楚地了解问题的领域,并在设计库时提供了很多帮助。

于 2008-09-10T13:45:01.600 回答
2

在Jim Arlow 和 Ila Neustadt所著的Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML一书的第 10 章数量原型模式中,对这个主题和一些通用模式进行了非常有用的讨论,您可以将其用作指南。

于 2008-09-10T15:01:13.180 回答
1

另请参阅最新的 F# 版本 - 它具有静态测量域/维度分析。

于 2008-09-10T14:15:41.450 回答
1

CodeProject上有一篇(旧)文章。我以前在生产环境中使用过它,效果很好。我们遇到了一些小问题(性能等),我解决了这些问题。我把所有这些都放在了一个你可以在这里找到的库中。

免责声明:我是这个项目的维护者,所以这可能被认为是一个无耻的插件。然而,图书馆是免费的(就像啤酒和演讲一样)。

它包括 SI 单位,但也允许创建新单位和转换。

例如,您可以创建一个单位“XP”(经验值)。然后,您可以注册转换为“m”(米,没有意义,但您可以做到)。您还可以创建一个像 3 XP/min(每分钟 3 经验值)这样的数量。我相信它提供了不错的默认值,同时允许灵活性。

于 2017-01-19T15:25:57.427 回答
0

Unix单位太棒了;来源必须在网络上的某个地方。
(在“错误”下,原始文档说“不要将您的财务计划建立在货币兑换上”。)

于 2011-06-12T09:37:31.200 回答