如何解决度量单位如何表示?
| 我只是从F#开始,想知道度量单位: 我知道它们仅在编译时出现,而Reflector确认了这一点:创建不是别名的度量单位将创建具有MeasureAttribute
属性的类,但除此之外,float<km/h>
表示为普通System.Double
。并且在类型,构造函数参数或属性上没有属性。
到目前为止,我明白了。但是,当我从另一个项目引用编译后的程序集时,它似乎了解所有有关度量单位的信息,包括别名。它如何获得这些信息?他们在集合中的哪儿?
解决方法
F#将“额外类型信息”存储在已编译程序集中的资源中,并且F#编译器知道如何读取该资源。因此,尽管将已区分的并集仅编译为一个类,并且将度量单位擦除为双精度,但是程序集中资源中存在额外的特定于F#的类型信息,以便当F#编译器读取它时,它可以重新构造额外的\“ F#元数据\”。
PowerPack具有元数据读取器,可让您以编程方式对其进行访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。